All-in-one PrestaShop images with Nginx + PHP-FPM on Alpine for testing and CI/CD
1.7K
All-in-one PrestaShop Docker images with Nginx + PHP-FPM on Alpine Linux. Each image ships with a specific PrestaShop release baked in and performs auto-installation on first start.
WARNING: These images are intended only for testing and CI/CD pipelines. They are not hardened, optimized, or supported for production use. Do not deploy them in production environments. For production installations, use official PrestaShop releases from prestashop.com.
Base image: dementev/php-fpm-with-ext:<php>-fpm
| PrestaShop | PHP versions | Tags |
|---|---|---|
| 1.7.5.2 | 7.0, 7.1, 7.2 | ps175-php70 ps175-php71 ps175-php72 |
| 1.7.6.9 | 7.0, 7.1, 7.2 | ps176-php70 ps176-php71 ps176-php72 |
| 1.7.7.8 | 7.1, 7.2, 7.3 | ps177-php71 ps177-php72 ps177-php73 |
| 1.7.8.10 | 7.1, 7.2, 7.3, 7.4 | ps178-php71 ps178-php72 ps178-php73 ps178-php74 |
| 8.0.5 | 8.0, 8.1 | ps80-php80 ps80-php81 |
| 8.1.7 | 8.0, 8.1 | ps81-php80 ps81-php81 |
| 8.2.4 | 8.0, 8.1, 8.2, 8.3, 8.4 | ps82-php80 ps82-php81 ps82-php82 ps82-php83 ps82-php84 |
Architectures: linux/amd64, linux/arm64
docker run -d \
-p 8080:80 \
-e PS_DOMAIN=localhost:8080 \
-e DB_SERVER=host.docker.internal \
-e DB_NAME=prestashop \
-e DB_USER=root \
-e DB_PASSWD=secret \
-e PS_INSTALL_AUTO=1 \
-e PS_ERASE_DB=1 \
-e PS_INSTALL_DB=1 \
dementev/prestashop-test-images:ps82-php84
| Variable | Default | Description |
|---|---|---|
PS_DOMAIN | localhost | Store domain (e.g. shop.localhost, localhost:8080). Falls back to container IP if not set during install. |
DB_SERVER | localhost | MySQL hostname |
DB_PORT | 3306 | MySQL port |
DB_NAME | prestashop | Database name |
DB_USER | root | Database user |
DB_PASSWD | admin | Database password |
DB_PREFIX | ps_ | Table prefix |
| Variable | Default | Description |
|---|---|---|
PS_INSTALL_AUTO | 0 | Set to 1 to run the CLI installer on first boot |
PS_ERASE_DB | 0 | Set to 1 to drop the database before install |
PS_INSTALL_DB | 0 | Set to 1 to create the database if it doesn't exist |
| Variable | Default | Description |
|---|---|---|
ADMIN_MAIL | [email protected] | Admin email |
ADMIN_PASSWD | prestashop_demo | Admin password |
PS_FOLDER_ADMIN | admin-dev | Admin folder name (renamed on install) |
PS_FOLDER_INSTALL | install | Install folder name (removed after install) |
| Variable | Default | Description |
|---|---|---|
PS_LANGUAGE | en | Default language ISO code |
PS_COUNTRY | GB | Default country ISO code |
PS_ALL_LANGUAGES | 0 | Set to 1 to install all available languages |
| Variable | Default | Description |
|---|---|---|
PS_DEV_MODE | 0 | Enable PrestaShop developer mode |
PS_HOST_MODE | 0 | Enable host mode |
PS_DEMO_MODE | 0 | Enable demo mode |
PS_ENABLE_SSL | 0 | Set to 1 to enable SSL during install |
Each image bundles:
/var/www/html at build timedocker_run.sh)PS_INSTALL_AUTO=1)settings.inc.php / parameters.php / parameters.yml)/tmp/pre-install-scripts/ (if any)install and admin folders if custom names are set/tmp/post-install-scripts/ (if any)Mount executable scripts to run them during setup:
# Before PrestaShop installation
-v ./my-script.sh:/tmp/pre-install-scripts/my-script.sh
# After PrestaShop installation
-v ./my-script.sh:/tmp/post-install-scripts/my-script.sh
| Setting | Value |
|---|---|
memory_limit | 1024M |
upload_max_filesize | 20M |
post_max_size | 22M |
max_execution_time | 30s |
max_input_vars | 10000 |
opcache.memory_consumption | 256M |
opcache.validate_timestamps | Off |
client_max_body_size (nginx) | 64M |
Built-in health check via curl http://localhost/ping (interval: 5s, start period: 300s).
docker build \
--build-arg PS_VERSION=8.2.4 \
--build-arg PHP_VERSION=8.4 \
-t prestashop:ps82-php84 .
See docker-compose.test.yml for a full example with Traefik, MySQL, Adminer, Redis, Memcached, and Mailpit.
services:
prestashop:
build:
context: .
args:
PS_VERSION: "8.2.4"
PHP_VERSION: "8.4"
environment:
PS_DOMAIN: shop.localhost
DB_SERVER: mysql
DB_NAME: prestashop
DB_USER: root
DB_PASSWD: secret
PS_INSTALL_AUTO: 1
PS_ERASE_DB: 1
PS_INSTALL_DB: 1
PS_DEV_MODE: 1
PS_FOLDER_ADMIN: admin-dev
ports:
- "8080:80"
depends_on:
mysql:
condition: service_healthy
mysql:
image: mysql:8.0
command: --disable-log-bin --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: secret
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
Content type
Image
Digest
sha256:6726f57d4…
Size
129.7 MB
Last updated
8 months ago
docker pull dementev/prestashop-test-images:ps178-php72