Web应用程序docker swarm在哪里放源代码?

我正在使用Docker和Docker编写PHP-FPM / Nginx / Mariadb应用程序开发.
我现在想用Docker swarm和docker-compose v3(通过docker-stack.yml)进行生产

我的docker-stack文件是这样的:

version: "3"
services:

db:
    image: mariadb
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: app
php:
    image: <MYREGISTRY>/php
    volumes:
        - app-data:/var/www/app
    deploy:
      replicas: 2

nginx:
    image: <MYREGISTRY>/nginx
    depends_on:
      - php
    volumes:
        - app-data:/var/www/app
    deploy:
      replicas: 2
    ports:
      - "80:80"

volumes:
  app-data:

如您所见,我使用自己的私有注册表来存储应用程序图像.我的问题是我在哪里放置代码源?

我看到两个选项:

>新服务应用程序(基于busybox映像?)是一个仅数据容器.然后我可以将代码源图像推送到我的注册表并进行部署.使用带标记的代码源的Docker镜像可能很方便.
>复制PHP图像或Nginx图像中的代码?

哪个是最好的选择?

最佳答案
源代码的维护应独立于docker镜像的维护.通过将包含源代码的docker镜像推入注册表,只维护源代码,您的第一个选项似乎将两者混合在一起.

将源代码保留在VCS(版本控制系统)上.当代码准备好分发时,使用该代码构建docker镜像.如果图像可以直接从VCS访问源代码,那么整体维护就会减少.

您可以探索多阶段docker构建,其中可以创建连接到VCS的临时容器,提取适当的代码并在必要时构建它.然后,最终映像仅从临时容器复制构建过程的结果,而无需对VCS进行不必要的访问.

转载注明原文:Web应用程序docker swarm在哪里放源代码? - 代码日志