Refactor Shopware role: separate Shopware app version and PHP runtime, update Dockerfile to use dynamic images, consolidate pull_policy, and improve image configuration. See conversation: https://chatgpt.com/share/6926d2f2-083c-800f-916a-7c260d1eada8

This commit is contained in:
2025-11-26 11:14:29 +01:00
parent 9c65bd4839
commit f8899e9493
4 changed files with 13 additions and 9 deletions

View File

@@ -26,17 +26,19 @@ docker:
enabled: true
init:
name: software-init
name: "shopware-init"
cpus: 1.0
mem_reservation: 1g
mem_limit: 2g
# Base PHP image used by all app services
shopware:
image: "shopware/production"
version: "6.7.3.1"
php:
image: "ghcr.io/shopware/docker-base"
version: "8.3"
web:
name: "shopware-web"
port: 8000

View File

@@ -15,7 +15,7 @@ ENV COMPOSER_ALLOW_SUPERUSER=1 \
COMPOSER_PROCESS_TIMEOUT=900
WORKDIR /app
ARG SHOPWARE_PROD_VERSION=shopware/production:6.7.3.1
ARG SHOPWARE_PROD_VERSION="{{ SHOPWARE_IMAGE }}:{{ SHOPWARE_VERSION }}"
# 1) Scaffold project without installing dependencies
RUN set -eux; \
@@ -45,7 +45,7 @@ RUN set -eux; \
############################
# Stage 2: Runtime
############################
FROM ghcr.io/shopware/docker-base:8.3
FROM {{ SHOPWARE_PHP_IMAGE }}:{{ SHOPWARE_PHP_VERSION }}
WORKDIR /var/www/html
# Install required PHP extensions in the Alpine-based runtime

View File

@@ -10,6 +10,7 @@ x-environment: &shopware
- bundles:/var/www/html/public/bundles
- "{{ SHOPWARE_FRAMEWORK_HOST }}:{{ SHOPWARE_FRAMEWORK_DOCKER }}:ro"
working_dir: {{ SHOPWARE_ROOT }}
pull_policy: never
{% include 'roles/docker-compose/templates/base.yml.j2' %}
@@ -61,7 +62,6 @@ x-environment: &shopware
{% include 'roles/docker-container/templates/base.yml.j2' %}
<<: *shopware
container_name: "{{ SHOPWARE_WORKER_CONTAINER }}"
pull_policy: never
entrypoint: {{ SHOPWARE_WORKER_ENTRYPOINT }}
depends_on:
init:
@@ -86,7 +86,6 @@ x-environment: &shopware
{% include 'roles/docker-container/templates/base.yml.j2' %}
<<: *shopware
container_name: "{{ SHOPWARE_SCHED_CONTAINER }}"
pull_policy: never
entrypoint: {{ SHOPWARE_SCHED_ENTRYPOINT }}
depends_on:
init:

View File

@@ -12,11 +12,14 @@ SHOPWARE_DOMAIN: "{{ domains | get_domain(application_id) }}"
# Shopware container/image vars
SHOPWARE_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.shopware.version') }}"
SHOPWARE_IMAGE: "{{ applications | get_app_conf(application_id, 'docker.services.shopware.image') }}"
SHOPWARE_CUSTOM_IMAGE: "{{ SHOPWARE_IMAGE }}:{{ SHOPWARE_VERSION }}"
SHOPWARE_CUSTOM_IMAGE: "shopware_custom"
SHOPWARE_VOLUME: "{{ applications | get_app_conf(application_id, 'docker.volumes.data') }}"
SHOPWARE_USER: "www-data"
SHOPWARE_ROOT: "/var/www/html"
SHOPWARE_PHP_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.php.version') }}"
SHOPWARE_PHP_IMAGE: "{{ applications | get_app_conf(application_id, 'docker.services.php.image') }}"
# Split service container names
SHOPWARE_INIT_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.init.name') }}"
SHOPWARE_WEB_CONTAINER: "{{ applications | get_app_conf(application_id, 'docker.services.web.name') }}"