Giter VIP home page Giter VIP logo

sclorg / s2i-php-container Goto Github PK

View Code? Open in Web Editor NEW
106.0 16.0 329.0 720 KB

PHP container images based on Red Hat Software Collections and intended for OpenShift and general usage, that provide a platform for building and running PHP applications. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.

Home Page: http://softwarecollections.org

License: Apache License 2.0

Shell 91.85% PHP 0.19% Makefile 0.37% Dockerfile 7.59%
rhel centos docker dockerfile openshift s2i source-to-image container fedora php

s2i-php-container's Introduction

PHP Docker images

Build and push images to Quay.io registry

Images available on Quay are:

This repository contains the source for building various versions of the PHP application as a reproducible Docker image using source-to-image. Users can choose between RHEL and CentOS based builder images. The resulting image can be run using podman.

For more information about using these images with OpenShift, please see the official OpenShift Documentation.

For more information about contributing, see the Contribution Guidelines. For more information about concepts used in these container images, see the Landing page.

Versions

PHP versions currently supported are:

RHEL versions currently supported are:

  • RHEL7
  • RHEL8
  • RHEL9

CentOS versions currently supported are:

  • CentOS7

CenOS Stream versions currently supported are:

  • CentOS Stream 9

Installation

To build a PHP image, choose either the CentOS or RHEL based image:

  • RHEL based image

    These images are available in the Red Hat Container Catalog. To download it run:

    $ podman pull registry.access.redhat.com/ubi8/php-74
    

    To build a RHEL based PHP image, you need to run the build on a properly subscribed RHEL machine.

    $ git clone --recursive https://github.com/sclorg/s2i-php-container.git
    $ cd s2i-php-container
    $ make build TARGET=rhel8 VERSIONS=7.4
    
  • CentOS based image

    $ git clone --recursive https://github.com/sclorg/s2i-php-container.git
    $ cd s2i-php-container
    $ make build TARGET=centos7 VERSIONS=7.3
    

Alternatively, you can pull the CentOS image from Docker Hub via:

$ podman pull centos7/php-73-centos7

Note: while the installation steps are calling podman, you can replace any such calls by docker with the same arguments.

Notice: By omitting the VERSIONS parameter, the build/test action will be performed on all the supported versions of PHP.

Usage

For information about usage of Dockerfile for PHP 7.4, see usage documentation.

For information about usage of Dockerfile for PHP 7.3, see usage documentation.

For information about usage of Dockerfile for PHP 8.0, see usage documentation.

For information about usage of Dockerfile for PHP 8.1, see usage documentation.

For information about usage of Dockerfile for PHP 8.2, see usage documentation.

Test

This repository also provides a S2I test framework, which launches tests to check functionality of a simple PHP application built on top of the s2i-php image.

Users can choose between testing a PHP test application based on a RHEL or CentOS image.

  • RHEL based image

    This image is not available as a trusted build in Docker Index.

    To test a RHEL8 based PHP-7.4 image, you need to run the test on a properly subscribed RHEL machine.

    $ cd s2i-php-container
    $ make test TARGET=rhel8 VERSIONS=7.4
    
  • CentOS based image

    $ cd s2i-php-container
    $ make test TARGET=centos7 VERSIONS=7.3
    

Notice: By omitting the VERSIONS parameter, the build/test action will be performed on all the supported versions of PHP.

Repository organization

  • <php-version>

    • Dockerfile

      CentOS based Dockerfile.

    • Dockerfile.rhel7

      RHEL based Dockerfile. In order to perform build or test actions on this Dockerfile you need to run the action on properly subscribed RHEL machine.

    • s2i/bin/

      This folder contains scripts that are run by S2I:

      • assemble

        Used to install the sources into the location where the application will be run and prepare the application for deployment (e.g. installing modules using npm, etc.)

      • run

        This script is responsible for running the application, by using the application web server.

    • contrib/

      This folder contains a file with commonly used modules.

    • test/

      This folder contains the S2I test framework with a sample PHP app.

      • test-app/

        A simple PHP app used for testing purposes by the S2I test framework.

      • run

        Script that runs the S2I test framework.

s2i-php-container's People

Contributors

andrewklau avatar blesenechal avatar bparees avatar brenton avatar csrwng avatar cuppett avatar dependabot[bot] avatar dinhxuanvu avatar ficap avatar hhorak avatar ibotty avatar jchristi avatar jhadvig avatar lucasnetau avatar mfojtik avatar omron93 avatar phracek avatar pkubatrh avatar praiskup avatar remicollet avatar rhcarvalho avatar sibeream avatar slbteam08 avatar soltysh avatar spinolacastro avatar torsava avatar vrutkovs avatar wgordon17 avatar yselkowitz avatar zmiklank avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

s2i-php-container's Issues

Wrong path to opcache.so module

Docker image for CentOS7 and php5.6 produce the following erorr to the /tmp/error_log:

Failed loading /opt/rh/php54/root/usr/lib64/php/modules/opcache.so:  /opt/rh/php54/root/usr/lib64/php/modules/opcache.so: cannot open shared object file: No such file or directory

And indeed:

$ docker exec 895ce6156408 ls -l /opt/rh/php54/root/usr/lib64/php/modules/opcache.so
ls: cannot access /opt/rh/php54/root/usr/lib64/php/modules/opcache.so: No such file or directory

Because it's in another directory:

$ docker exec 895ce6156408 ls -l /opt/rh/rh-php56/root/usr/lib64/php/modules/opcache.so
-rwxr-xr-x. 1 root root 154456 Jun 29 08:26 /opt/rh/rh-php56/root/usr/lib64/php/modules/opcache.so

I believe that it should be fixed in the following files:

$ git grep php54
5.6/contrib/etc/php.d/10-opcache.ini.template:zend_extension=/opt/rh/php54/root/usr/lib64/php/modules/opcache.so
5.6/contrib/etc/php.d/10-opcache.ini.template:opcache.blacklist_filename=/opt/rh/php54/root/etc/php.d/opcache*.blacklist

Steps to reproduce:

  1. $ make build VERSION=5.6 TARGET=centos7
  2. s2i build https://github.com/openshift/sti-php.git --context-dir=5.6/test/test-app openshift/php-56-centos7 php-test-app
  3. docker run -d -p 8080:8080 php-test-app
  4. docker exec $(docker ps | grep php-test-app | awk '{print $1}') cat /tmp/error_log

(Found during my work on BZ#1231862)

need php 7.0

I need php 7.0 for deploying an Application. How can i do that?
If there is a documentation to create a docker PHP i will be happy to create a PR here.

Package differences between versions

There are some inconsistencies between versions involving these two packages:

memcache (not in PHP 7.0)
xdebug (not in PHP 5.5 or 7.0)

Memcache is one of two memcached clients available in PHP. The more common package is "memcached" rather than "memcache" because the memcached library has more functionality as it was written to replace "memcache".

Xdebug is mostly used for development purposes or profiling in non-production use. It is not a good practice to have it enabled by default, especially for a server that can be used as both.


Xdebug should probably just be removed for now due to the nature of it (also with it only being in PHP 5.6) and memcached should be made available in PHP 7. Long term, it would be nice to see enabling/disabling modules on an as-needed basis since the root account is stripped and you cannot install them with this image without modifying it directly.

OpenShift Web server refreshes site back to original content

I am using OpenShift 1.5.1.alpha. I have a Drupal site installed in the server, integrates on a git repo. Everytime it creates a build on the server, site is redirected to its installation process.

I have noticed two things.

  1. When I create dummy files and commit it to the repo, the files are permanently created on the server after the reinstallation.

  2. When I create changes, install package from the server inside the Drupal root directory, everything is gone after it rebuilds/reinstall the site.

Also, the site installed is broken. I can only access the user and homepage with a no-theme-page. Looking on the browser console, I see that during the installation, site is not generating the CSS folder and needed files on it. All other pages or links is unaccessible. I check the permission of sites/ folder and changes everything to 777, I get no difference.

Thanks in advance!

-John Rey

php 5.6 performance issues

We have been receiving increased reports for performance issues with the 5.6 image.

5.6 has issues with slow response times which often leads to gateway timeouts etc.

Downgrading/upgrading to 5.5/7.0 resolve the problem.

allow setting headers

Until/If openshift/origin#9728 lands, it would be great to set e.g. Strict-Transport-Security header.

I propose that for every env variables named like SET_HEADER_<HEADER_NAME> a SetEnv directive is inserted into a conf snippet in /opt/app-root/etc/conf.d.

I would further propose handling CORS headers explicitly. Maybe with a configmap. If you are interested, I will prototype it and ask for comments.

Add test cases and post build hook

๐Ÿ’  Adding a test case to the existing app didn't seen like the most fun and useful thing to do right now, so I'm opening this issue as a remainder to myself later or kind request for help if someone else wants to contribute sample unit tests.

This patch adds a build hook to run tests as part of the build flow in OpenShift:

diff --git a/openshift/templates/cakephp-mysql.json b/openshift/templates/cakephp-mysql.json
index 52143da..c1140b0 100644
--- a/openshift/templates/cakephp-mysql.json
+++ b/openshift/templates/cakephp-mysql.json
@@ -106,7 +106,10 @@
               "secret": "${GITHUB_WEBHOOK_SECRET}"
             }
           }
-        ]
+        ],
+        "postCommit": {
+          "script": "./Console/cake test"
+        }
       }
     },
     {
diff --git a/openshift/templates/cakephp.json b/openshift/templates/cakephp.json
index b77dc0c..dae89ff 100644
--- a/openshift/templates/cakephp.json
+++ b/openshift/templates/cakephp.json
@@ -31,7 +31,7 @@
           }
         ],
         "selector": {
-          "name": "cakephp-example" 
+          "name": "cakephp-example"
         }
       }
     },
@@ -106,7 +106,10 @@
               "secret": "${GITHUB_WEBHOOK_SECRET}"
             }
           }
-        ]
+        ],
+        "postCommit": {
+          "script": "./Console/cake test"
+        }
       }
     },
     {

Note: ./Console/cake test might need extra arguments. See http://book.cakephp.org/2.0/en/development/testing.html (since apparently we're using 2.x as of now).

Update to Cake 3.x?

With CakePHP 3.2.x out there, maybe one day we can revisit and update this example to use that, and a compose.json file, etc.

JSON access and error log

I implemented JSON logging in our forked php container.
This has the advantage that the fields of the log are nicely presented in kibana.
Would this be of general interest? If yes, I can prepare a pull request.

Assemble script cleanup source

Hello, i realized that images builded by sti has a considerable size, looking for a answer i've found the source pulled from a git repository is located twice on the output image, once at /opt/app-root/src and /tmp/src.

Am i missing something or we can add rm -rf /tmp/src at the bottom of assemble script?

Allow installing without dev packages

The assemble script executes the following Composer command :

./composer.phar install --no-interaction --no-ansi --optimize-autoloader

By default, Composer installs the dev packages (defined in require-dev in composer.json) which is not always needed for production deployments (it increases the build time, generates bigger images, generates a bigger classes autoloaded which decreases performance, install extra packages with potential security issues, ...)

It would be nice to have a build option to execute Composer with the --no-dev option.

I'll try to create a pull request soon.

Run MongoClient on Openshift V3

Hi, when lunch my application return this error:

"Class 'MongoClient' not found in /opt/app-root/src"

So i changed to 'MongoDB\Driver\Manager' but the result is the same:

"Class 'MongoDB\Driver\Manager' not found"

There are modules:
sh-4.2$ cd /opt/rh/rh-php70/root/usr/lib64/php/modules
sh-4.2$ ls
bcmath.so gd.so mysqlnd.so shmop.so wddx.so
bz2.so gettext.so opcache.so simplexml.so xml.so
calendar.so gmp.so pdo.so soap.so xmlreader.so
ctype.so iconv.so pdo_mysql.so sockets.so xmlwriter.so
curl.so intl.so pdo_pgsql.so sqlite3.so xsl.so
dom.so json.so pdo_sqlite.so sysvmsg.so zip.so
exif.so ldap.so pgsql.so sysvsem.so
fileinfo.so mbstring.so phar.so sysvshm.so
ftp.so mysqli.so posix.so tokenizer.so

why mongodb.so is not installed on server? what is the correct way?

Thanks

save-artefacts not working

If I run

 s2i --incremental=true build https://github.com/simbo1905/hello-composer.git centos/php-71-centos7 hello-composer

multiple times in a row I see:

ERROR: Error reading next tar header: archive/tar: invalid tar header
ERROR: Error extracting tar stream
WARNING: Clean build will be performed because of error saving previous build artifacts

Whereas we would expect the .s2i/save-artifacts to have backed up the vendor folder.

I am using:

Docker version 17.12.0-ce, build c97c6d6
s2i v1.1.8

Wrong Session path

In the file /opt/rh/httpd24/root/etc/httpd/conf.d/php55-php.conf the default session path will be set.
This directory is not writable when running a container on ose3 environment in non priviledged mode.

For a fix see pull request #49 #50

7.1 container fails to start due to errors performing pre-start/20-copy-config.sh

When starting a container made with 7.1 container as base startup fails on errors on MPM-config

Reading script following script fails because files under /opt/app-root/etc/conf.d are owned by root and others have only read permissions
s2i-php-container/7.1/root/usr/share/container-scripts/php/pre-start/20-copy-config.sh

It seems that s2i-php-container/7.1/root/usr/share/container-scripts/php/post-assemble/20-copy-config.sh is run as root and pre-start version as non-root user and after post-assemble files have not been processed correctly.

Error message on startup:

-> Cgroups memory limit is set, using HTTPD_MAX_REQUEST_WORKERS=68
=> sourcing 20-copy-config.sh ...
---> 09:20:11     Processing additional arbitrary httpd configuration provided by s2i ...
=> sourcing 00-documentroot.conf ...
/usr/share/container-scripts/php//common.sh: line 97: /opt/app-root/etc/conf.d/00-documentroot.conf: Permission denied
=> sourcing 50-mpm-tuning.conf ...
/usr/share/container-scripts/php//common.sh: line 97: /opt/app-root/etc/conf.d/50-mpm-tuning.conf: Permission denied
=> sourcing 40-ssl-certs.sh ...
AH00526: Syntax error on line 3 of /opt/app-root/etc/conf.d/50-mpm-tuning.conf:
StartServers takes one argument, Number of child processes launched at server startup

Listing of /opt/app-root/etc/conf.d from extended php-post-assemble script

ls -lah /opt/app-root/etc/conf.d
total 8.0K
drwxrwxrwx. 2 default root  60 Mar 15 11:31 .
drwxrwxrwx. 4 default root  75 Jan 22 12:55 ..
-rw-r--r--. 1 default root  33 Mar 15 11:31 00-documentroot.conf
-rw-r--r--. 1 default root 478 Mar 15 11:31 50-mpm-tuning.conf

How to use with OpenShift

Hello

This repo description says:

intended for OpenShift and general usage

However the readme only gives examples of using directly with s2i and docker, which are standalone applications from OpenShift.

Also, the link to the OpenShift on the readme (https://docs.openshift.org/latest/using_images/s2i_images/php.html) also does not give instructions on how to use these with OpenShift, but instead with docker.

I\m interested in how I can use a template in OpenShift, which accepts a git url (containing php and/or composer.json) and create a php application image - from within OpenShift.

Any guidance on this is appreciated.

disable xdebug option

It seems strange to be including xdebug for prod containers, it'd be ideal if we could add an option to disable this by ENV variable (or not include it at all?)

How to run script before starting httpd?

When reading the docs, it states that you can create a httpd-pre-init folder which can contain bash scripts. Does this mean that these scripts will get executed before the httpd process is started in openshift or is this only meant for the s2i build process? If the latter is true, how do I execute some commands before starting this docker image?

I use a Laravel based php app and I need to execute "php artisan migrate" before starting httpd. How would I implement this?

Security updates ?

Hi everyone,

Not sure this is the best place to ask the question but the version of PHP 5.5 used seems rather old :

sh-4.2$ php --version                                                           
PHP 5.5.21 (cli) (built: Oct  5 2015 21:26:44)                                  
Copyright (c) 1997-2014 The PHP Group                                           
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies                   
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

There have been several releases that fix security problems : http://php.net/ChangeLog-5.php
Can someone may share the update policy ?

Thanks

Zip extension for PHP 7.0

Hello, i couldn't find zip extension on image nor in scl testing repo, is there any way to add it?

Shell skripts in ./php-pre-init or ./php-post-assemble seems to ignored or work different as expected

Hello,

the readme.md is updated well and I tried to place some testscripts in my source code under ./php-pre-init or ./php-post-assemble.

Unfortunately will this scripts will ignored. After Build and after deplyoment I do not see a result inside the running pod:

bash:$ oc -n infra rsh phpmyadmin-26-ae442
sh-4.2$ pwd
/opt/app-root/src
sh-4.2$ cat php-pre-start/modifyindex.sh
echo 'This content was replaced by pre-init script.' > ${HTTPD_APP_ROOT}/src/index.html
sh-4.2$  find / -name "index.html" 2>/dev/null
/opt/rh/httpd24/root/usr/share/httpd/noindex/index.html
(expected file not found - this means, the script was never run)
sh-4.2$ ls php-post-assemble/
test.sh
sh-4.2$ cat  php-post-assemble/test.sh
echo 'This content was replaced by php-post-assamble script.' > ${HTTPD_APP_ROOT}/src/index2.html
echo 'This content was replaced by php-post-assamble script2' > /tmp/index2.html
sh-4.2$  find / -name "index2.html" 2>/dev/null
(nothing found - this means, the script was never run)
sh-4.2$ 

I do not found a Script, that copies the Skripts from php-pre-init or php-post-assemble.
Maybe it is some missing in s2i-php-container like:
s2i-php-container/7.1/root/usr/share/container-scripts/php/pre-start/20-copy-config.sh
for example:
s2i-php-container/7.1/root/usr/share/container-scripts/php/pre-start/60-copy-init-scripts.sh

with content like

# additional arbitrary httpd pre init scripts provided by user using s2i

log_info 'Processing additional arbitrary httpd pre init scripts provided by s2i ...'

process_extending_config_files ${APP_DATA}/php-pre-init/ ??????

(I do not know, how the pre-init scirpts get started inside the builted image.)

How can I inject a .sh script from my source code repository into the resulting image, that runs once during a pod starts and the pod get ready?

Many Thanks in Advance!

s2i run script sets incorrect default for opcache memory consumption

S2I run script sets a default value of "16M" instead of "16" for the opcache memory consumption via:

export OPCACHE_MEMORY_CONSUMPTION=${OPCACHE_MEMORY_CONSUMPTION:-16M}

however the PHP documentation marks this as an integer field

opcache.memory_consumption integer
The size of the shared memory storage used by OPcache, in megabytes.

set sub directory as public root

hi, i have this structure in my git repository

  • example (folder)
  • public (folder)
  • composer.json (file)

it's possible to set public folder as public web root?

add support for composer global plugins

Some applications rely on composer plugins to properly install their dependencies. For example, some applications delegates to composer the installations of npm and bower packages. Composer uses the plugin fxpio/composer-asset-plugin for this kind of 3rd party deps management. The issue is fxpio/composer-asset-plugin only can be installed/enable globally. So the image should install install using the command:

composer global require "fxp/composer-asset-plugin:~1.3"

Configurable documentroot?

It would be desirable if we could have the DocumentRoot configurable as an environment variable, ie. our repository is configured to have composer.json in the root directory, but a different directory stores the public content (ie. /web or /public)

Adding a Script in "./httpd-pre-init" does not work as expected

Hello,

at https://github.com/sclorg/s2i-php-container/blob/master/7.1/README.md is explained, how to extend the image with a Script that get started before httpd starts.

I add a skript in the httpd-pre-init subfolder directly at the git source root folder.
And there I placed a example.sh script.

I expected, that this script get started with the resulting container. But it wont be started.
The script exists inside the container:

bash# oc rsh containername
sh-4.2$ pwd
/opt/app-root/src
sh-4.2$ ls -al ./httpd-pre-init
total 12
drwxrwxr-x.  2 default root   46 May 24 10:26 .
drwxrwxr-x. 16 default root 4096 May 24 11:15 ..
-rw-rw-r--.  1 default root  509 May 24 10:26 example.sh
sh-4.2$

It seams, that the "run-httpd" script from the sclorg apache 2.4 container will not used/not exist:

sh-4.2$ find / -name "run-httpd" 2>/dev/null
sh-4.2$ find / -name "pre-init" 2>/dev/null
/usr/share/container-scripts/php/pre-init
sh-4.2$ ls -al /usr/share/container-scripts/php/pre-init
total 0
drwxr-xr-x. 2 root root  6 May  9 12:08 .
drwxr-xr-x. 6 root root 94 May  9 12:08 ..
sh-4.2$

Maybe some for pre-start or is missing here to use function process_extending_files() from common.sh
https://github.com/sclorg/s2i-php-container/tree/master/7.0/root/usr/share/container-scripts/php

What is necessary, that this script get started once inside the container?

Many Thanks advance

Composer via EPEL

Hi,

I would like to add a feature to use the composer from epel instead of using it from assemble. Is that a better way of doing so? I am I allowed to send in a proposal/merge?

n

Njjjj

Add mcrypt module

The installation of the mcrypt module per default or a documentation for it would be welcome.

Add NewRelic agent

I have a patch that add's newrelic agent and ability to config via env vars, would it be acceptable ?

Bake composer in Docker images

I'd like to discuss installing composer in the Dockerfiles instead of in the assemble scripts.

The reasons:

  1. Less time spent during builds.
  2. Builds do not rely on getcomposer.org being available (or maybe still do if downloading any depedencies...).
  3. Have a fixed "version" of composer that will/can be tested together with the image, as opposed to getting a potentially different version with every build using the builder image.

Install PEAR package

With OpenShift v2, there was an easy way to install PEAR dependency in PHP cartridge, by editing .openshift/pear.txt.

Is there something similar with this s2i container? I see that PEAR is mentioned in include path (/opt/rh/rh-php70/root/usr/share/pear), but I am not sure how to install a dependency there.

What is the best practice for adding extension?

I tried to add extensions by using PHP_INI_SCAN_DIR like https://github.com/nak3/openshiftv3-php with customizing *.ini:

extension = /opt/app-root/src/lib/modules/tidy.so

However, it overwrites default extensiton /opt/rh/php55/root/usr/lib64/php/modules. What is the best way to install PHP extensions?

OpenShift v2 has pear.txt and it might be good idea if we could use them on v3.
(I know it is possible by customizing sti-image, but some users don't like use customized image.)

Opache memory consumption default too low for PHP7

The Zend Opcache memory consumption default of 16MB is too low in a PHP7 environment with interned string buffer set to 8MB (currently non-configurable in 10-opcache.ini).

This issue is described in https://bugs.php.net/bug.php?id=72720

Why was 16MB chosen as the default for this container? The default set in PHP documentation for Opcache is 64MB and the scl-php70 package sets this at 128MB. Should the s2i-php container use this same default or another value? Small applications will happily run in 32MB allocated whereas Wordpress and Drupal will prefer 64 or 128.

Prior to #151, OpCache was allocated 128MB due to the run script not setting the container template correctly. Perhaps this value should be used as the default for the container to ensure BC.

/tmp/sessions permission denied

I pulled the latest centos/php-71-centos7 and found my apps start showing permission denied errors on /tmp/session/:

Warning: session_start(): open(/tmp/sessions/sess_eb242dea5a72c0892fa8758d86836ec0, O_RDWR) failed: Permission denied (13)

I looked that code and found that seems caused by a recent change which introduced the /usr/libexec/container-setup script. In this script /tmp/sessions owner is set to 1000:0. It used to be 1001:0.

Sorry that I am not familiar with steps to contribute code change. Could anyone help fixing the issue?

can't download composer installer

i got this error, when build image:
Found 'composer.json', installing dependencies using composer.phar... Downloading https://getcomposer.org/installer, attempt 1/6 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:04 --:--:-- 0curl: (6) Could not resolve host: getcomposer.org; Unknown error

s2i run script writes 10-opcache.ini to wrong path

While investigating #149 I found that the S2I run script writes our the 10-opcache.ini file to /etc/opt/rh/rh-php70/ directory instead of the scanned /etc/opt/rh/rh-php70/php.d directory

envsubst < /opt/app-root/etc/php.d/10-opcache.ini.template > /etc/opt/rh/rh-php70/10-opcache.ini

php -i shows that we don't load the file from the rh-php70 directory

Loaded Configuration File => /etc/opt/rh/rh-php70/php.ini
Scan this dir for additional .ini files => /etc/opt/rh/rh-php70/php.d
Additional .ini files parsed => /etc/opt/rh/rh-php70/php.d/10-opcache.ini,

Honoring proxy settings

There is a slight problem with s2i-php when using it behind a proxy with no direct access to the internet.

Namely: https://github.com/openshift/s2i-php/blob/master/5.6/s2i/bin/assemble#L12

This part specfically (as I understand it) does not honor proxy settings such as http_proxy or HTTP_proxy or its equivalents for different protocols.

I would ask to simply change it to curl instead to fetch that file since that will follow proxy settings properly.

(The whole discussion about fetching files blindly from the internet is another discussion).

Symfony2 projects need to run scripts during assemble phase

I was wondering if the parameter

--no-scripts

in the assemble script can be removed? Since symfony 2 projects run scripts during composer install eg.

  • clearing Cache
  • build Bootstrap
  • install assets of all bundles to the public web directory
  • create app/config/parameters.yml
...
"scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
        ],
        "post-update-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
        ]
    },
...

As an alternative solution I would suggest to make an sti-php-symfony image, which is based on either php-55-centos7 or php-56-centos7

Composer is broken when timezone is not set?

One guy reported this today at the roadshow in Prague. I haven't tried to reproduce it, but it seems like the composer is not working properly when the timezone in container is not set.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.