diff --git a/.dockerignore b/.dockerignore index 645eeaf..be0bbed 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,6 +3,7 @@ runtime node_modules *.sock +docker-dev +docker-dev-data .docker-dev-sync .docker-dev.env -source/stack/ diff --git a/source/stack/author/Dockerfile b/source/stack/author/Dockerfile index 51a33a2..3259aab 100644 --- a/source/stack/author/Dockerfile +++ b/source/stack/author/Dockerfile @@ -11,6 +11,9 @@ RUN composer install --no-dev --no-interaction --no-scripts --no-autoloader # 将当前目录下的文件拷贝到工作目录 COPY . /var/www/html +# B-route: build context 为仓库根,模式配置在 source/stack//source/docker/ +RUN rm -rf /var/www/html/source/docker && ln -sf /var/www/html/source/stack/author/source/docker /var/www/html/source/docker + # 生成自动加载文件 RUN composer dump-autoload --optimize --no-dev --classmap-authoritative diff --git a/source/stack/docker-dev-sync/Dockerfile b/source/stack/docker-dev-sync/Dockerfile index cafdf20..a0c0c51 100644 --- a/source/stack/docker-dev-sync/Dockerfile +++ b/source/stack/docker-dev-sync/Dockerfile @@ -56,6 +56,9 @@ RUN composer install --no-interaction --no-scripts # Copy all files to working directory COPY . /var/www/html +# B-route: build context 为仓库根,模式配置在 source/stack//source/docker/ +RUN rm -rf /var/www/html/source/docker && ln -sf /var/www/html/source/stack/docker-dev-sync/source/docker /var/www/html/source/docker + # Generate autoloader (without --no-dev optimizations) RUN composer dump-autoload @@ -63,8 +66,8 @@ RUN composer dump-autoload # RUN install-php-extensions @composer # Dev mode PHP config (overrides zz-phprun.ini) -COPY source/docker/zzz-dev.ini /usr/local/etc/php/conf.d/zzz-dev.ini -COPY source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini +COPY source/stack/docker-dev-sync/source/docker/zzz-dev.ini /usr/local/etc/php/conf.d/zzz-dev.ini +COPY source/stack/docker-dev-sync/source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini # Create source mount point (host code staging area) RUN mkdir -p /var/www/source diff --git a/source/stack/docker-dev/Dockerfile b/source/stack/docker-dev/Dockerfile index 178d340..d89c337 100644 --- a/source/stack/docker-dev/Dockerfile +++ b/source/stack/docker-dev/Dockerfile @@ -56,6 +56,12 @@ RUN composer install --no-interaction --no-scripts # Copy all files to working directory COPY . /var/www/html +# B-route: build context 为仓库根,模式配置在 source/stack//source/docker/ +# 仓库根有全局 source/docker/(仅基础配置),模式目录内的是超集(含 run.sh、dev 配置) +# 删除全局目录并创建 symlink 指向模式专属配置,让 run.sh 引用的路径能找到文件 +RUN rm -rf /var/www/html/source/docker \ + && ln -sf /var/www/html/source/stack/docker-dev/source/docker /var/www/html/source/docker + # Generate autoloader (without --no-dev optimizations) RUN composer dump-autoload @@ -63,8 +69,8 @@ RUN composer dump-autoload # RUN install-php-extensions @composer # Dev mode PHP config (overrides zz-phprun.ini) -COPY source/docker/zzz-dev.ini /usr/local/etc/php/conf.d/zzz-dev.ini -COPY source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini +COPY source/stack/docker-dev/source/docker/zzz-dev.ini /usr/local/etc/php/conf.d/zzz-dev.ini +COPY source/stack/docker-dev/source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini VOLUME /var/www/html/runtime VOLUME /var/www/html/public/storage diff --git a/source/stack/docker-serve/Dockerfile b/source/stack/docker-serve/Dockerfile index 41d26fe..39f71f0 100644 --- a/source/stack/docker-serve/Dockerfile +++ b/source/stack/docker-serve/Dockerfile @@ -11,6 +11,9 @@ RUN composer install --no-dev --no-interaction --no-scripts --no-autoloader # 将当前目录下的文件拷贝到工作目录 COPY . /var/www/html +# B-route: build context 为仓库根,模式配置在 source/stack//source/docker/ +RUN rm -rf /var/www/html/source/docker && ln -sf /var/www/html/source/stack/docker-serve/source/docker /var/www/html/source/docker + # 生成自动加载文件 RUN composer dump-autoload --optimize --no-dev --classmap-authoritative diff --git a/source/stack/full/Dockerfile b/source/stack/full/Dockerfile index 281bb89..92bd331 100644 --- a/source/stack/full/Dockerfile +++ b/source/stack/full/Dockerfile @@ -55,6 +55,9 @@ RUN composer install --no-dev --no-interaction --no-scripts --no-autoloader # 将当前目录下的文件拷贝到工作目录 COPY . /var/www/html +# B-route: build context 为仓库根,模式配置在 source/stack//source/docker/ +RUN rm -rf /var/www/html/source/docker && ln -sf /var/www/html/source/stack/full/source/docker /var/www/html/source/docker + # 生成自动加载文件 RUN composer dump-autoload --optimize --no-dev --classmap-authoritative