mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-08-30 20:55:32 +08:00
B-route 把 build context 改为仓库根后,Dockerfile 中的 COPY source/docker/... 和 chmod/ENTRYPOINT 引用 /var/www/html/source/docker/ 全部失效。 根因: - 仓库根有全局 source/docker/(仅 nginx.conf/zz-phprun.ini/zz-phpfpm.conf 基础配置) - 模式专属配置(run.sh、zzz-dev.ini、zzz-xdebug.ini 等)在 source/stack/<mode>/source/docker/ - COPY . 把全局 source/docker/ 复制进容器,但缺少模式专属文件 - 旧 COPY source/docker/zzz-dev.ini 在 context=仓库根时找不到文件 修复(所有 5 个模式统一): - 每个 Dockerfile 在 COPY . 后加 rm -rf + ln -sf symlink, 让 /var/www/html/source/docker 指向模式专属配置目录 - COPY ini 文件路径改为完整的 source/stack/<mode>/source/docker/... - .dockerignore 去掉 source/stack/ 排除(配置文件仅几 KB, 但 COPY 需要这些文件在 build context 中) - .dockerignore 加 docker-dev/docker-dev-data 排除(旧数据残留)
38 lines
1.1 KiB
Docker
38 lines
1.1 KiB
Docker
ARG BASE_IMAGE=ulthon/ulthon_admin-base:latest
|
|
FROM ${BASE_IMAGE}
|
|
|
|
# 设置工作目录
|
|
WORKDIR /var/www/html
|
|
|
|
# 预先拷贝 composer 文件并安装依赖,利用 Docker 缓存
|
|
COPY composer.json composer.lock /var/www/html/
|
|
RUN composer install --no-dev --no-interaction --no-scripts --no-autoloader
|
|
|
|
# 将当前目录下的文件拷贝到工作目录
|
|
COPY . /var/www/html
|
|
|
|
# B-route: build context 为仓库根,模式配置在 source/stack/<mode>/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
|
|
|
|
VOLUME /var/www/html/runtime
|
|
VOLUME /var/www/html/public/storage
|
|
VOLUME /var/www/html/public/build
|
|
VOLUME /var/www/html/storage
|
|
|
|
# 挂载主目录,也可以选择直接挂载主目录,可以把上面的几个指定的目录删掉
|
|
# VOLUME ["/var/www/html"]
|
|
|
|
# 暴露 Nginx 端口
|
|
EXPOSE 8000
|
|
|
|
RUN chmod +x /var/www/html/source/docker/run.sh
|
|
|
|
# 启动 Nginx PHP 然后阻塞
|
|
ENTRYPOINT ["/bin/bash", "/var/www/html/source/docker/run.sh"]
|
|
|
|
CMD ["server"]
|
|
|