Git Product home page Git Product logo

docker's Introduction

Pimcore PHP Docker Image

This is are customized PHP Docker images specifically optimized for running Pimcore. It doesn't include the Pimcore software itself, it just provides an environment that fulfills all system requirements of Pimcore, so that you can leverage the full functionality.

You can either use this image directly by mounting Pimcore into the container, or as a template for your customized ready-to-deploy images.

Usage

As a starting point please see example docker-compose configuration.

Image flavors

We're providing different image flavors:

  • [min] PHP image for FPM and CLI with minimum requirements (e.g. php8.2-min-latest)
  • [default] PHP image for FPM and CLI incl. all optional dependencies (e.g. php8.2-latest or php8.2-default-latest)
  • [max] PHP image for FPM and CLI incl. all optional dependencies and additional extensions and software (e.g. php8.2-max-latest)
  • [debug] PHP debug image based on PHP image above, including preconfigured Xdebug for FPM and CLI (e.g. php8.2-debug-latest)
  • [supervisord] Supervisord image based on PHP image above, for cron & queue processing (e.g. php8.2-supervisord-latest)

Versioning

Our images are versioned using a version-suffix staring with -v following SemVer (e.g. -v2.0).
With that we're able to allow smooth upgrades, breaking changes are only delivered with major versions.
Additionally we're offering 2 special tag suffixes:

  • -latest always points to the latest available tag (recommended for local development)
  • -dev always points to the work in progress

We're also offering special tags for specific PHP versions, e.g. php8.2.5-v2.0.

Pimcore version compatibility & recommendations

Image / Pimcore v10 v11 v2023.0
v1
v2
v3 ✅* ✅*

*) recommended version

Examples

PHP images

php8.2-latest # always use the latest PHP 8.2 image
php8.2-v1 # always point to the latest minor version of v1
php8.2-v1.0 # pin to specific image version, always using the latest bugfixes from PHP 8.2
php8.2.5-v1.0 # pin to a specific PHP version & image version 
php8.2-dev # development image (build from the default branch) 

PHP Debug images

Same as PHP images, but using -debug after the PHP version:

php8.2-debug-latest
php8.2-debug-v3
...

Configure Xdebug in your IDE

The following configuration depends on the default docker-compose.yaml.

How to configure Xdebug with Pimcore Docker image

Use step-debugging

  • Browser: Install "Xdebug helper" browser extension for Chrome or Firefox and start debugging session in your tab.
  • CLI: Run your command like this: docker compose exec -e XDEBUG_TRIGGER=PHPSTORM php bin/console

Supervisord

Same as PHP images, but using -supervisor after the PHP version:

php8.2-supervisor-latest
php8.2-supervisor-v3
...

docker's People

Contributors

alexz707 avatar aweichler avatar ben305 avatar blackbitdevs avatar bluvulture avatar brusch avatar campino2k avatar chilladelia avatar cipribucur avatar countzero1981 avatar davidhoeck avatar dpfaffenbauer avatar fashxp avatar imba28 avatar jbq avatar jdreesen avatar jeremygnoonan avatar jheimbach avatar jorisros avatar kubaplas avatar maxjuergens avatar mloock avatar wildtangent avatar yariksheptykin avatar youwe-petervanderwal 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

Watchers

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

docker's Issues

Invalid Apache SSL DocumentRoot

I installed Pimcore based on the instructions found in repository descriptions of https://github.com/pimcore/skeleton and https://github.com/pimcore/pimcore.

COMPOSER_MEMORY_LIMIT=-1 composer create-project pimcore/skeleton my-project
cd ./my-project
docker-compose run --rm php vendor/bin/pimcore-install --mysql-host-socket=db --mysql-username=pimcore --mysql-password=pimcore --mysql-database=pimcore
docker-compose run --rm php chown -R www-data:www-data var/*
docker-compose up -d

Pimcore is working normally at http://localhost, but the SSL deployment at https://localhost throws a 403 Forbidden error.

Docker logs for the php container show that Apache cannot find the DocumentRoot as expected:

AH00112: Warning: DocumentRoot [/var/www/html/web] does not exist

This is set in:

DocumentRoot /var/www/html/web

However, the instructions did not indicate that we need to create the /var/www/html/web folder.

Apache base images

With Merge Request #59 all apache versions, including the current versions (7.4 and 8.0) were removed.

Is there a reason why?
We want to use apache base images, with these changes we would need to build our own pimcore images only to extend from apache, or is there an easier way?

Image PHP8.0-apache incomplete

The image PHP8.0-apache lacks support for the Redis extension even though it's defined in the Dockerfile.

While rebuilding the image for a test I noticed that the compilation of the extension imagick (pecl install imagick) fails and thus every other commands of this step aren't executed (next command in chain would be redis and misc tools).

 cc -I. -I/tmp/pear/temp/imagick -I/tmp/pear/temp/pear-build-defaultuserdMsjc4/imagick-3.4.4/include -I/tmp/pear/temp/pear-build-defaultuserdMsjc4/imagick-3.4.4/main -I/tmp/pear/temp/imagick -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/include/ImageMagick-7 -DHAVE_CONFIG_H -g -O2 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/include/ImageMagick-7 -c /tmp/pear/temp/imagick/imagick_file.c  -fPIC -DPIC -o .libs/imagick_file.o
In file included from /tmp/pear/temp/imagick/imagick_file.c:22:
/tmp/pear/temp/imagick/php_imagick_file.h:61:108: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 zend_bool php_imagick_file_init(struct php_imagick_file_t *file, const char *filename, size_t filename_len TSRMLS_DC);
                                                                                                            ^~~~~~~~~
/tmp/pear/temp/imagick/php_imagick_file.h:65:54: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 int php_imagick_safe_mode_check(const char *filename TSRMLS_DC);
                                                      ^~~~~~~~~
In file included from /tmp/pear/temp/imagick/imagick_file.c:22:
/tmp/pear/temp/imagick/php_imagick_file.h:68:134: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 php_imagick_rw_result_t php_imagick_read_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC);
                                                                                                                                      ^~~~~~~~~
/tmp/pear/temp/imagick/php_imagick_file.h:71:153: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 php_imagick_rw_result_t php_imagick_write_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type, zend_bool adjoin TSRMLS_DC);
                                                                                                                                                         ^~~~~~~~~
/tmp/pear/temp/imagick/php_imagick_file.h:74:112: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 zend_bool php_imagick_stream_handler(php_imagick_object *intern, php_stream *stream, ImagickOperationType type TSRMLS_DC);
                                                                                                                ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:81:51: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 zend_bool php_imagick_is_url(const char *filename TSRMLS_DC)
                                                   ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:91:108: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 zend_bool php_imagick_file_init(struct php_imagick_file_t *file, const char *filename, size_t filename_len TSRMLS_DC)
                                                                                                            ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:160:133: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 int php_imagick_read_image_using_imagemagick(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC)
                                                                                                                                     ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:201:133: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 int php_imagick_read_image_using_php_streams(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC)
                                                                                                                                     ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:255:54: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 int php_imagick_safe_mode_check(const char *filename TSRMLS_DC)
                                                      ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:269:134: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 php_imagick_rw_result_t php_imagick_read_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type TSRMLS_DC)
                                                                                                                                      ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:288:153: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 php_imagick_rw_result_t php_imagick_write_file(php_imagick_object *intern, struct php_imagick_file_t *file, ImagickOperationType type, zend_bool adjoin TSRMLS_DC)
                                                                                                                                                         ^~~~~~~~~
/tmp/pear/temp/imagick/imagick_file.c:313:112: error: expected ';', ',' or ')' before 'TSRMLS_DC'
 zend_bool php_imagick_stream_handler(php_imagick_object *intern, php_stream *stream, ImagickOperationType type TSRMLS_DC)
                                                                                                                ^~~~~~~~~
make: *** [Makefile:209: imagick_file.lo] Error 1
ERROR: `make' failed

Are we affected by "sunsetting Docker Free Team" subscription?

See https://www.docker.com/blog/we-apologize-we-did-a-terrible-job-announcing-the-end-of-docker-free-teams/

Docker is forcing Free Team users to start paying or to apply for their Supported OSS Program. From pimcore's docker hub page it is unclear if pimcore is affected by these horrible news. It says "Community Organization" . Docker images for Pimcore does not have a Supported OSS badge, like curl does for example. Should we start worrying that dockerhub deletes docker images in April? Or are we safe?

[Permission issue] Can't generate image thumbnails for office documents

When trying to generate thumbnails for office documents (e.g. .docx), the following error can be found in /var/logs/libreoffice-pdf-convert.log:

[Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx failed!
Warning: failed to read path from javaldx

(process:351): dconf-CRITICAL **: unable to create directory '/var/www/.cache/dconf': Permission denied.  dconf will not work properly.

Steps to reproduce

Call the following code:

/** @var Asset\Document $asset */
$asset->getImageThumbnail($thumbnailName)->getPath();

Web2Print don't work - Headless Chrome

In settings when i set Web2Print tool to Headless Chrome i get an error when i want to print test page. The error is:

Attempted to load class "StringInput" from namespace "Spiritix\Html2Pdf\Input". Did you forget a "use" statement for "Symfony\Component\Console\Input\StringInput"?

I use docker image (10.5.15).

Any idea?

build process didn't work

Hey @dpfaffenbauer,
i think the build process didn't work, the changes are not in the current images.

After my PR #14 I pulled the new image but the changes are not in it.

I looked at the workflow and i think where the problem is.
Here, and here

in the jobs test and push, the files are build via update_dockerfiles and after that the repro is checked out again, therefore new Dockerfiles will be overwritten.

`php: symbol lookup error` after new images have been pulled

After the latest docker image release, pimcore installer does not work anymore.

Steps to reproduce:

wget https://raw.githubusercontent.com/pimcore/skeleton/10.2/docker-compose.yaml
docker-compose exec php composer create-project pimcore/skeleton my-project
docker-compose exec php composer install
docker-compose exec php vendor/bin/pimcore-install -vvv

After entering the admin & DB credentials, the installation is aborted with the following message:

php: symbol lookup error: /usr/local/lib/libMagickCore-7.Q16HDRI.so.10: undefined symbol: heif_init

As I found there was some issue in the last version, with heic, I just run ldconfig /usr/local/lib and after this, php was working normally again.

Host OS: OS X 12.6
CPU: Apple M1 Pro (arm64)
Docker Desktop 4.15.0 (93002)
Docker Compose version v2.13.0

error in image(s)

When I try using the php8.1-fpm I get this error:
php: symbol lookup error: /usr/local/lib/libMagickCore-7.Q16HDRI.so.10: undefined symbol: heif_init

I also tried using php8.1-debug and php8.1-fpm-debug in different setups, but all have the same issue.
I use Docker Desktop 4.15.0 (93002) on a Mac M1.

What might be causing this?

Cache ImageMagick builds

Currently we're building ImageMagick again and again, the idea is to build and cache ImageMagick only once per version and platform (amd64,arm64).

This should reduce the build time significantly.

.... PRs welcome 🤗

[wkhtmltopdf] Images not displayed

We are using the image pimcore/pimcore:PHP7.3-fpm-buster.
When generating a PDF all images are not displayed.

We set the pimcore config field "wkhtml2pdfHostname" to our domain and when we use curl/wget inside the container to retrieve the image it works properly.

Do you guys have an idea where the problem is? If you need more info just let me know.

Best regards

DocumentRoot [/var/www/html/web] does not exist

Hi,

I just restarted my container (using image pimcore/pimcore:PHP8.0-apache-debug), and it seems that something overrides Apache Document Root configured in docker-compose.yaml.

Error I'm receiving:

AH00112: Warning: DocumentRoot [/var/www/html/web] does not exist

So I'm guessing that the old Pimcore web root haunts somewhere in the image and breaks the image for Pimcore X, where root should be /var/www/html/build

Any suggestions how to fix the issue?

deployment error.

I have an error related to mounting the volume ./.docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro

error message:
Error Failure failed to deploy a stack: Network pimcore_default Creating Network pimcore_default Created Container pimcore-db-1 Creating Container pimcore-redis-1 Creating Container pimcore-redis-1 Created Container pimcore-db-1 Created Container pimcore-php-1 Creating Container pimcore-supervisord-1 Creating Container pimcore-supervisord-1 Created Container pimcore-php-1 Created Container pimcore-nginx-1 Creating Container pimcore-nginx-1 Created Container pimcore-db-1 Starting Container pimcore-redis-1 Starting Container pimcore -redis-1 Started Container pimcore-db-1 Started Container pimcore-supervisord-1 Starting Container pimcore-php-1 Starting Container pimcore-supervisord-1 Started Container pimcore-php-1 Started Container pimcore-nginx-1 Starting Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/data/compose/8/.docker/nginx.conf" to rootfs at "/ e tc/nginx/conf.d/default.conf": mount /data/compose/8/.docker/nginx.conf:/etc/nginx/conf.d/default.conf (via /proc/self/fd/6 ), flags: 0x5001: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

Do you have any idea please.

gd php module is missing in latest pimcore/pimcore:PHP7.4-apache image

Hi,
last week on thursday I did a docker-compose based setup for a project where we use pimcore. By then it work great. Today my colleagues checked out the setup and followed the instructions but they failed to set it up.
So I checked and found out that the latest image of (at least) pimcore/pimcore:PHP7.4-apache is missing the php gd module, what makes composer install/update/create-project commands fail.

Steps to verify and check yourself:

Check enabled php-modules (make sure to pull latest image):

[root@docker-test pim-demo]# docker run -it --rm pimcore/pimcore:PHP7.4-apache php -m
[PHP Modules]
apcu
bcmath
bz2
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
hash
....

Try to setup pimcore/skeleton or pimcore/demo project with composer:

[root@docker-test docker]# docker run -it --rm -v .:/var/www/html pimcore/pimcore:PHP7.4-apache composer create-project pimcore/skeleton pimcore

Creating a "pimcore/skeleton" project at "./pimcore"
Installing pimcore/skeleton (v2.8.13)
  - Downloading pimcore/skeleton (v2.8.13)
  - Installing pimcore/skeleton (v2.8.13): Extracting archive
Created project in /var/www/html/pimcore
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.

  Problem 1
    - phpoffice/phpspreadsheet is locked to version 1.16.0 and an update of this package was not requested.
    - phpoffice/phpspreadsheet 1.16.0 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
  Problem 2
    - pimcore/pimcore is locked to version v6.8.10 and an update of this package was not requested.
    - pimcore/pimcore v6.8.10 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
    ....

I saw a few commits related to gd recently, quite sure it has something to do with that..

Thanks, Patrick

Versioning of Docker Images

We are using this docker image for some of our projects and we had some issues a few weeks ago because it was updated (using the same docker tag) changing the composer version from 1.x to 2.x
So we started creating our own "pimcore docker image" from pimcore/pimcore:PHP7.x-apache, adding some extra dependencies that were common between our projects and versioning all the old images.

We also created the "debug" images extending our production ones, by manually adding the content of the file debug-Dockerfile-block-1 to our "debug" dockerfile.
Today I rebuilt the image and I got some messages about the xdebug config... it installed the v3.0.0 !
The new version of xdebug was released last week and it is now the one that is installed when executing pecl install xdebug

I updated my "debug" image to work with the new version; for example it changed the default port from 9000 to 9003 and some other configurations are different.

The next time the images pimcore/pimcore:PHP7.x-xxx from this repo are build they will be affected by the same issues and are probably going to break someone's dev environment.

How do you want to handle the xdebug version upgrade in your images?
I see 2 simple options:

  • We do nothing and xdebug changes version in the next build (it could be a problem for someone)
  • We limit xdebug to v2.x (not a long term solution)

IMHO a better solution would be to change the image tags and add an incremental number for each build, something like pimcore/pimcore:PHP7.4-apache-1234 and pimcore/pimcore:PHP7.4-apache-1234-debug.
We could also always tag the already existing tags without the incremental number and use them as a "latest" images (so the tags that exists now will always be up-to-date).
This would allow a user to choose one specific image with no risk of it changing without notice and breaking the dev env or a build (as happened with composer2 and xdebug3).

What do you think about these options?
I hope my explanation was clear.

Let me know if I can be of any help,
Thanks

increase upload limit

Pimcore recommends/requires an upload_max_filesize and post_max_size of 100M or more.

I would propose to do that in the Dockerfile, to minimize the changes someone has to make in order to use these images.

Currently I include an .ini file into the /usr/local/etc/php/conf.d folder, but it is not a perfect solution.

Login creds - unable to login

I have set up the docker successfully using Docker Desktop.
and able to open the http://localhost/admin login page, but I am unable to login with pimcore/pimcore user.
I am sure that I am missing something here, can you share the login details If something else is there?

Remove SQIP

SQIP support has been removed in Pimcore X with pimcore/pimcore#8521.

It's probably way too early to remove it from the docker images right now, but this ticket should be a reminder.

www-data user/group id

Improvement/Request

Maybe this is more like a request or a question in general than an improvement. Here, the ID of the www-data user is manually set to 1000.
Now, my question is, why is that needed? And why isn't the group ID also enforced to be 1000 even though the "default" is 33.

A short explanation would be nice! :)

BR
Scrummer

[Feature Request] Enable HTTP/2 support

HTTP/2 brings development and production closer together (multiplexing, header compression, server push, etc.). Would be a nice improvement to have. WDYT?

BUG Avif segfault at 20 ip 00007f47068a5b64 sp 00007ffefd5627a0 error 4 in libaom.so.0[7f4706712000+2da000]

[Wed Apr 5 13:14:47 2023] php[3887895]: segfault at 20 ip 00007f47068a5b64 sp 00007ffefd5627a0 error 4 in libaom.so.0[7f4706712000+2da000] [Wed Apr 5 13:14:47 2023] Code: 7e 18 f7 de 0f af f3 48 63 c6 c1 fe 1f 48 69 c0 1f 85 eb 51 48 c1 f8 25 29 f0 48 83 c4 08 5b 5d c3 0f 1f 44 00 00 55 48 89 fd <48> 8b 7f 20 e8 d3 6f f9 ff 48 8b 7d 28 e8 ca 6f f9 ff 48 89 ef 5d

Image which i try generate thumbnail download
Config thumbnail

pimcore:
    assets:
        image:
            thumbnails:
                definitions:
                    product_gallery_preview:
                        items:
                            -
                                method: contain
                                arguments:
                                    width: 3200
                                    height: 4000
                                    forceResize: false
                        medias: {  }
                        name: product_gallery_preview
                        description: ''
                        group: Product
                        format: SOURCE
                        quality: 85
                        highResolution: 0.0
                        preserveColor: false
                        preserveMetaData: false
                        rasterizeSVG: false
                        downloadable: false
                        modificationDate: 1669740473
                        creationDate: 1658930137
                        preserveAnimation: false

Command with error

./bin/console pimcore:thumbnails:image --id=220097 --thumbnails=product_gallery_preview --verbose

Command without error

./bin/console pimcore:thumbnails:image --id=220097 --thumbnails=product_gallery_preview --verbose --skip-avif

Entries to xdebug ini are added every time the container start.

In the debug-Dockerfile-block-1 files entries are echo'ed to the 20-xdebug.ini.
This is done every time the container starts resulting in a lot of duplicate entries in the 20-xdebug.ini file.

That would normally not be a problem except that it looks wrong. But I want to change the remote host address to point to the docker host IP. And it keeps getting "overwritten" every time I start the container.

BTW. Why is the default remote host address 127.0.0.1 ? How would one run a debugging IDE inside the php container? Is there some other way to redirect the debugging information from the container to the host?

Do not build CLI images

I'm wondering if there's any benefit of providing a dedicated CLI image, as there's no real difference in size on the base image (CLI is bigger?) and FPM includes the php binary as well:

REPOSITORY                     TAG                  IMAGE ID       CREATED         SIZE
php                            8.1-fpm-bullseye     d8535a9afeb8   24 hours ago    449MB
php                            8.1-cli-bullseye     fbf532b99a6e   25 hours ago    484MB

same for the pimcore/pimcore images:

REPOSITORY                     TAG                  IMAGE ID       CREATED         SIZE
pimcore/pimcore                PHP8.1-cli           eef7f05b5349   6 hours ago     2.81GB
pimcore/pimcore                PHP8.1-fpm           891051713528   6 hours ago     2.78GB

Proposal:
We build only the FPM image and additionally add the CLI tag and save a lot of computing resources and data transfer on deployment 🍃

Request: Support Amazon ECR Public Gallery

The official pimcore Docker image is currently pushed to the Docker hub only. Dev teams that are using a CI/CD pipeline will be limited by Docker hub quotas when images are build frequently.

I'd like to propose to push the pimcore image to an additional Docker registry that does not have rate limits. Since we're running pimcore on AWS, AWS ECR Public Gallery would be a nice addition for us. Software vendors can get a verified account status for their registry (for example see nginx Docker image).

Optimize build and image size

  • debug image should extend from normal image (same as supervisor)
  • debug image should be build in same job as base image but in a later step
  • ImageMagick should be build only once per platform
  • use multi stage builds and build args, instead of update.sh to make it easier to maintain

FPM | PHP7.4-fpm Image | How to make it run?

I am running Pimcore based on docker-compose, as suggested in https://github.com/dpfaffenbauer/pimcore-docker-compose/blob/master/docker-compose.yml. But I want to upgrade and use php-fpm.

My first attempt was to replace php-apache by the php-fpm image in docker-compose.

The container successfully starts:

[28-Aug-2020 07:14:41] NOTICE: fpm is running, pid 1
[28-Aug-2020 07:14:41] NOTICE: ready to handle connections

But I cannot connect to the webserver anymore.
PHP-FPM is running, but probably Apache is required as well.

root@274d41eeae12:/etc# ps -auxfh
root       229  0.0  0.0   4000  3152 pts/0    Ss   07:20   0:00 bash
root      1904  0.0  0.0   7640  2696 pts/0    R+   08:01   0:00  \_ ps -auxfh
root         1  0.0  0.2 309824 41928 ?        Ss   07:14   0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)

Do I need to run two containers, and configure the Apache container for using FPM?

Build ARM Natively

Having a ARM Build Server speeds up the build significantly. I propose we add a custom action runner on ARM that runs our builds.

@brusch Do you have one in AWS or GCloud?

Pimcore 11

Tasks:

@brusch How do we wanna organise todos for Pimcore 11? With the Milestone 2.0 or should we create a project for that?

npm and nodejs are dropped

I want to use Headless Chrome Web2Print Adapter in Pimcore.
I need to install "spiritix/php-chrome-html2pdf" package.
When I do so, the npm command is not found.
I saw that the Pimcore Docker Images where not shipped with npm and nodejs anymore.

In the this commit npm and nodejs get dropped.

What is the current way to use the spiritix bundle with the pimcode docker images?

PHPStorm freezes and request take a very long time if PHPStorm is listening for debug connections

I have been having this issue for some time now.

As the title states, PHPStorm completely freezes and is unusable for up to 30 seconds, when it is listening for xdebug connections and the cookie is set. Also, it takes an equal amount of time until the php container starts processing the request.

I don't have this issue with other docker-compose environments.

My local environment is Debian Bookworm (was the same with Bullseye).

Debugging works just fine after the wait and PHPStorm has unfrozen.

Any ideas?

Edit:
Just measured the time, request currently takes 66s with phpstorm listening. The Symfony profiler shows a script runtime of a little over 1s, so more than a minute is spent doint whatever.

php://input auto echo before script execute

when use the docker image: pimcore/pimcore:PHP8.0-fpm-buster

index.php

<?php

header('Content-Type:text/html;charset:utf-8');

when i request index.php 3 times, 2 times success, 1 failed

request like this:

GET http://192.168.1.40:8012/index.php HTTP/1.1
Host: 192.168.1.40:8012
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=733c5ca56aa762a9077e1abd8c0ea772
Content-Length: 16

{"name":"test"}

the response like this:

HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Tue, 14 Jun 2022 12:29:11 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/8.0.10
Content-Length: 190

{"name":"test"}<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at php://input:1) in <b>/var/www/test/index.php</b> on line <b>3</b><br />

when i restart the docker container, the warning disappear

Composer 2 in php7.4 Image

The Docker Images for php7.4 copy from composer:latest which install composer 2
Since Pimcore X requires php8 this should be composer 1

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.