【问题标题】:docker-compose and deploymentdocker-compose 和部署
【发布时间】:2018-06-04 19:36:49
【问题描述】:

我正在使用 Docker 进行开发,并且有一个 docker-compose.yml 文件。大多数服务(php、httpd、node、python)都有项目文件和配置的本地挂载(卷)。

当我部署我的项目时,由于这些挂载点是本地的,远程主机上不会存在这些文件。

在这种情况下,部署我的项目的最佳方法是什么?是否有我可以遵循的准则或最佳做法?

这是我的 docker-compose.yml 文件的一部分:

version: '2'

services:

php:
    build: ./src/docker/php/
    image: project-name/php
    expose:
        - 9000
    volumes:
        - ./httpd-api:/var/www
    working_dir: /var/www

httpd-api:
    image: httpd:2.4.29
    depends_on:
        - php
    ports:
        - 8080:80
    expose:
        - 80
    volumes:
        - ./httpd-api/httpd.conf:/usr/local/apache2/conf/httpd.conf
        - ./httpd-api/httpd-vhosts.conf:/usr/local/apache2/conf/extra/httpd-vhosts.conf
    volumes_from:
        - php

httpd-ng:
    image: httpd:2.4.29
    ports:
        - 80:80
    volumes:
        - ./httpd-ng/httpd.conf:/usr/local/apache2/conf/httpd.conf
        - ./httpd-ng/html/.htaccess:/usr/local/apache2/htdocs/.htaccess
        - ./angular/dist:/usr/local/apache2/htdocs

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    在这种情况下,您必须更新 Docker 映像,并且可以使用 COPY 语句将它们添加到所需的挂载点。

    https://docs.docker.com/engine/reference/builder/#copy

    • 您必须在每个项目中创建 Dockerfile
      • 然后在单个 Dockerfile 中将所有需要的文件从上下文复制到新创建的 Docker-image(docker-image-name 可以通过 docker-compose.yml 设置)
    • 更新您的 docker-compose.yml 以进行构建操作。

    然后像 --- docker-compose up --build 一样执行你的项目

    https://docs.docker.com/compose/compose-file/

    【讨论】:

    • 您需要创建自己的 Dockerfile 并将基础镜像作为“php”或“httpd”。
    • 分享你的 docker-compose.yml 文件
    • 为此,我需要: 1- 将我的 docker-compose.yml 更改为“部署”版本并包含 COPY 语句 2- docker 提交对图像的更改 3- docker 推送图像连同我的文件一起到 docker hub,对吗? 4- 更改 docker-compose.yml 文件以使用我在步骤 1 中创建的图像
    • 这是正确的答案,但现在我遇到了另一个问题。我需要两组 docker-compose.yml 和 Dockerfiles 用于开发和部署。关于如何拥有一个适用于开发和部署的 docker-compose.yml 有什么想法吗?
    • 您可以尝试使用 2 个 docker-compose.yml(一个用于开发,一个用于部署)。在 DEV 中,您可以将本地 src 文件夹挂载/卷到 Docker 映像中的相关文件夹中,以防万一您可以跳过安装/卷部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2018-09-26
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多