Git Product home page Git Product logo

dockerfiles's People

Contributors

ahocquard avatar aligent-lturner avatar anaelchardan avatar aymericplanche avatar bitone avatar damien-carcel avatar docteurklein avatar ghoussard avatar jjanvier avatar jmleroux avatar lars85 avatar ludovictourman avatar mr-prud avatar nidup avatar pierallard avatar rouliane avatar samirboulil avatar stefandoorn avatar torhoehn 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

Watchers

 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

dockerfiles's Issues

Add PHP 7.1 images

As PHP 7.1 has been released, it is now time to update the master branch with it.

Link PIM on selenium

docker-compose for behat should link in read-only the PIM from the host to the selenium container the same way it is with the apache-php container.

This is mandatory for file uploads to work in tests.

Also, remove ':80' from 'base_url' in behat.yml example.

Enhance documentation

Each image should have only its own documentation, minimalistic.

Documentation about using docker-compose files should be separated and as didactic as possible.

There should be 2 docker-compose.yml.dist files, one for Apache, one for nginx + FPM, both with dev and test environment (on two separated networks).

Links pointing to this documentation should be available on the main README and in the README on each terminal Dockerfile.

Xdebug deactivation in behat images does not work

phpdismod is overridden by the entrypoint script.

Best way is to add an environment variable to this script to activate Xdebug.

It should be deactivate by default.

Environment variable should all be present (even if commented) in the compose files provided in the repository.

Prevent unwanted tags to be created

Right now, when a branch is pushed, a build is launched on docker hub.

Build should only be launched on selected branches (for the moment, only master, more to come with PHP 7 and PHP-FPM).

akeneo-fpm image fails at startup

The akeneo-fpm gives this back to me when issuing a docker-compose up akeneo:

Starting pimcommunitydev_mongodb_1
Starting pimcommunitydev_mysql_1
Starting pimcommunitydev_akeneo_1
Attaching to pimcommunitydev_akeneo_1
akeneo_1         | [19-Jan-2017 14:18:18] ERROR: Unable to create the PID file (/run/php/php7.1-fpm.pid).: No such file or directory (2)
akeneo_1         | [19-Jan-2017 14:18:18] ERROR: FPM initialization failed
pimcommunitydev_akeneo_1 exited with code 78

Enhance install commands

pim-cac, pim-in-ass and pim-initialize remove all the cache each time.

Only the cache related to the container should be removed. For instance, in akeneo image, only remove dev and prod, and in behat, only behat cache.

Also, behat tmp dir should be directly in app, and trash at each behat install.

Add nginx images

Base on "official" nginx images from docker hub, and configure it so:

  • nginx user is "docker"
  • nginx listen on /var/run/phpX-fpm.sock (X being php version, according to carcel/fpm configuration) Will be in the akeneo-fpm images

Cannot access both akeneo and akeneo-behat containers at the same time

Q A
Bug report? yes
Feature request? no
BC Break report? no
RFC? no
Affected image and tag new one

When running both akeneo and akeneo-behat environments through one compose file (akeneo on localhost:8080 and akeneo-behat on 8081), when a user logs in one environment, he/she is disconnected from the other one.

The problem is observed with both Apache + mod_php and Apache (FCGI) + FPM

Solution

The easiest way to handle this is to use a reverse proxy on the host machine. This should be documented.

Example with Apache, assuming the Docker container is mapped on port 8080 and we want to redirect it on the domain name pim-ce.local:

<VirtualHost *:80>
    ServerName pim-ce.local

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>

We could also use Traefik.

ext-mongodb is missing from the akeneo images

Hello,

I'm trying to use the docker-compose files to have a dev environment for Akeneo. I may have gotten something wrong, but at least the apache version, when running the docker-compose exec akeneo php -d memory_limit=-1 /usr/local/bin/composer update I get a missing ext-mongodb dependency for the system. I have this with akeneo:php-5.6 as well as latest.

Here is the complete stacktrace:

Problem 1
    - alcaeus/mongo-php-adapter 1.0.0 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.1 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.2 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.3 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.4 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.5 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.6 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.7 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - alcaeus/mongo-php-adapter 1.0.8 requires mongodb/mongodb ^1.0.1 -> satisfiable by mongodb/mongodb[1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.1.1].
    - mongodb/mongodb 1.1.1 requires ext-mongodb ^1.2.0 -> the requested PHP extension mongodb is missing from your system.
    - mongodb/mongodb 1.1.0 requires ext-mongodb ^1.2.0 -> the requested PHP extension mongodb is missing from your system.
    - mongodb/mongodb 1.0.4 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.
    - mongodb/mongodb 1.0.3 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.
    - mongodb/mongodb 1.0.2 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.
    - mongodb/mongodb 1.0.1 requires ext-mongodb ^1.1.0 -> the requested PHP extension mongodb is missing from your system.
    - Installation request for alcaeus/mongo-php-adapter ^1.0 -> satisfiable by alcaeus/mongo-php-adapter[1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php5/cli/php.ini
    - /etc/php5/cli/conf.d/05-opcache.ini
    - /etc/php5/cli/conf.d/10-pdo.ini
    - /etc/php5/cli/conf.d/20-apcu.ini
    - /etc/php5/cli/conf.d/20-curl.ini
    - /etc/php5/cli/conf.d/20-gd.ini
    - /etc/php5/cli/conf.d/20-imagick.ini
    - /etc/php5/cli/conf.d/20-intl.ini
    - /etc/php5/cli/conf.d/20-json.ini
    - /etc/php5/cli/conf.d/20-mcrypt.ini
    - /etc/php5/cli/conf.d/20-mongo.ini
    - /etc/php5/cli/conf.d/20-mysql.ini
    - /etc/php5/cli/conf.d/20-mysqli.ini
    - /etc/php5/cli/conf.d/20-pdo_mysql.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Improve documentation

Relates to #122.

Currently, there is minor differences between the documentation of each branch. So it is easy to have errors, because one reads the master documentation when using php-5.6 branch images, for example.

  • Documentation must be improved by taking older branch into consideration:
    • make it more exaustive, explaining how branches correspond to PHP versions, with their differences,
    • documentation must mention than php-5.6 does not require alcaeus/mongo-php-adapter on composer update, only needed for PHP 7.x,
    • composer option --ignore-platform-reqs is only needed if using doctrine/mongodb-odm-bundle on PHP 7.x.
  • This implies to remove the documentation from every branches but master (as it is the landing page).
  • This is also an opportunity to add a changelog, one for each branch, the more recent branches containing the changelog of the older branches too.

Check environment variables

PHP_XDEBUG_DEFAULT_ENABLE is confusing and useless. It should be removed.

Other variables, except for BEHAT_TMPDIR, are set with default values, so they should be commented in compose files examples.

Make carcel/apache-php more configurable

Why

Right now, this image is only a common base for both carcel/akeneo and carcel/akeneo-behat.

However, it should be configurable, like nginx images, allowing to copy an Apache vhost in it when running a container. This way, the image could be usable for any Symfony or PHP application.

Expected

  • Move Vhost from akeneo to apache-php image
  • Place application in /home/docker/symfony instead of /home/docker/pim (already the same for fpm and nginx images)
  • Reflect those changes on documentation (COMPOSE.md and compose example)

Add a test runner for Travis CI and some basic tests

For the moment, Travis only builds the images in cascade.
For each image, we should define some tests to run before building the next image.
Build should be stop as soon as an error is detected and return the error code.

Each image tests must be placed in the image folder, in a "test" subfolder, all its content ran automatically by the main script (so there's nothing to do in it when adding a new test).

Add CONTRIBUTING.md and GitHub contributing template

Look at Symfony templates for inspiration, and describe process (what base branch to choose for the PR and why, how to label both commits and PR…).

  • Contributing.md with good practices
  • Issue template
  • PR template

Fix behat server configuration

Uploads do not work, maybe due to absence of the rewrite rules present in the apache images, maybe another reason.

Investigation needed.

Packages cleaning after apt-get is no good

It is useless to do an apt-get autoclean, as an apt-get clean is already performed.

apt-get autoremove must be appended with --purge

Add full options in the commands for readability: --yes instead of -y

Keep only one nginx image

Same result can be obtained with official nginx images and environment variables.

  • Replace the usage of the socket by port 9001 in carcel/fpm, not only in the akeneo fpm images
  • Use carcel/nginx image in the compose files
  • Remove the other nginx images (GitHub and Docker hub)

Enhance provided commands

Like there is a command pim-initialize and pim-in-ass, there should be a command pim-cac:

  • rm -rf app/cache/*
  • app/console ca:c -e=prod
  • app/console ca:c

Also, pim-initialize and pim-in-ass should dump assets as symlinks even in behat images.

Add documentation on branch php 5.4 and 5.5

Only PHP CLI images are provided, for legacy compatibility on Akeneo 1.4 and 1.5, to be able to run unit tests.

May be removed in the future, so this issue is on hold for the moment.

Check CI possibilities

Right now, there is no check prior to PR than building and running the docker images locally.
A dockerfile checkstyle should also be added.

Check what exists in term of continuous integration.

Set right permissions to `/tmp/behat/screenshots`

When running docker-compose up -d for behat env, the folder /tmp/behat/screenshots is automatically created (which is good!), but with access only for root user, making scenario fail (which, obviously, is bad!).

We need to find a way to automatically create it with full read/write accesses for everyone (or at list for the user running the containers). We can update the PIM compose file to remove this bind mount, and set the screenshot folder directly in a PIM subfolder, as it is configurable through environment variable.

=> ADD THIS TO TROUBLESHOOTING SECTION

Update "composer update" documentation

  • For all tags, composer should be launch with php -d memory_limit=-1 to prevent any memory problem
  • For PHP 7 and newer, argument --ignore-platform-reqs must be added.

behat images miss perceptualdiff

Akeneo EE tests needs perceptualdiff for asserting images transformations of the PAM.

In docker-compose.yml, BEHAT_TMPDIR must be non recursive on creation ( meaning only one new folder in an existing one, no imbrication, for instance "app/tmp").

Remove akeneo-behat-fpm

As the server is configured in nginx containers, there is no need to have two images. The compose file can provide one fpm container with two nginx containers, one for prod/dev, the other for fpm.

Enable by default Xdebug in dev

And should contain this xdebug.remote_enable=1 in /etc/php5/apache2/conf.d/20-xdebug.ini

sudo echo "xdebug.remote_enable=1" >> /etc/php5/apache2/conf.d/20-xdebug.ini

Fix selenium shared volumes

Selenium should have read and write access to the PIM and to the screenshot folder.

Add BEHAT_TMPDIR environment variable to docker-compose.yml.

Raise upload size

PHP uploads are on default value. Set max_upload and post_max to 20M, both apache, CLI and FPM.

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.