Base PHP-FPM image for Drupal with drupal user configured
1.0K
A base PHP-FPM image for Drupal production environments, extending php-fpm with a pre-configured drupal user. Designed as a reusable base for your Drupal project Dockerfiles.
Everything from php-fpm, plus:
drupal user and group with configurable UID/GIDdrupal user (not www-data)8.5, latest8.48.38.28.1docker pull tavib47/drupal-php:8.4
This image is designed to be extended in your project:
FROM tavib47/drupal-php:8.4
# Copy application code
COPY --chown=drupal:drupal . .
# Create Drupal directories
RUN mkdir -p /var/www/html/web/sites/default/files \
/var/www/html/private \
/var/www/html/tmp \
&& chown -R drupal:drupal /var/www/html/web/sites/default/files \
/var/www/html/private \
/var/www/html/tmp
EXPOSE 9000
Configure paths in settings.php:
$settings['file_private_path'] = '/var/www/html/private';
$settings['file_temp_path'] = '/var/www/html/tmp';
| ARG | Default | Description |
|---|---|---|
PHP_VERSION | 8.4 | PHP version to use |
DRUPAL_UID | 41821 | UID for the drupal user |
DRUPAL_GID | 41821 | GID for the drupal group |
Match the host user for local development:
docker build \
--build-arg DRUPAL_UID=$(id -u) \
--build-arg DRUPAL_GID=$(id -g) \
-t my-drupal-php .
services:
php:
build:
context: .
dockerfile: docker/php/Dockerfile
args:
- DRUPAL_UID=${DRUPAL_UID:-41821}
- DRUPAL_GID=${DRUPAL_GID:-41821}
volumes:
- .:/var/www/html
expose:
- "9000"
healthcheck:
test: ["CMD", "php-fpm-healthcheck"]
interval: 30s
timeout: 3s
retries: 3
nginx:
image: tavib47/drupal-nginx
ports:
- "80:80"
volumes:
- ./web:/var/www/html/web:ro
environment:
- PHP_FPM_HOST=php
depends_on:
php:
condition: service_healthy
Content type
Image
Digest
sha256:caabf3c26…
Size
342.1 MB
Last updated
8 months ago
docker pull tavib47/drupal-php