docker-library/drupal

Moving installation from /var/www/html to /opt/drupal/web caused breakage.

Closed this issue · 5 comments

On August 6, our test script in AWS CodeBuild broke. Apparently Drupal installation isn't being installed in /var/www/html within the container anymore.

Now we keep getting this error:

OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"./run-updates.sh\": stat ./run-updates.sh: no such file or directory": unknown
--

Is there a good reason why this was changed?

Were you using drupal:latest in your test script? Because that changed from pointing to drupal:8 to drupal:9. If that's true, and without knowing your use-case, I would guess that explicitly referencing drupal:8 (instead of drupal:latest) would solve it for you. Then you can take the time to understand the changes in the Drupal 9 image, which is built via Composer and Drupal's new Recommended Project template: https://www.drupal.org/docs/develop/using-composer/starting-a-site-using-drupal-composer-project-templates

Here is the PR that made the change for D9: #176

And the original issue: #169

Hope that helps!

The 8 images were also changed in #176 to use Drupal's recommend layout. We tried to keep everything backwards compatible so that mounts to /var/www/html/modules (and others as documented on the Docker Hub page) would still work.

It seems that you are dropping a file into /var/www/html explicitly and then relying on the WORKDIR to run it? Unfortunately the WORKDIR was changed to accommodate child images to easily install extra composer packages ( like RUN composer require 'drupal/paragraphs:^1.12'). I would suggest to either COPY the file into ./ or be explicit about both where you put it and where you run it from.

@yosifkit Yes, that's exactly what we have in our setup. We assume that the workdir will be the same. Now that it's different, everything is broken.

Are we going to have to reorganize our entire directory structure to support Drupal 9? Because that wasn't described at DrupalCon.

You can see a diff over in #176 (comment). Which boils down to compose.json, .lock, and vendor/ have moved, but are still in the direct WORKDIR and everything else is in ./web/ (but still accessible as /var/www/html).

We would like to understand how users expect to be able to customize the drupal image for their deployments. Would it be possible to share your Dockerfile and build context along with a docker run or docker-compose.yml file?

Closing old issue.