docker-compose:如何立即查看文件更改(开发时)

问题描述 投票:7回答:1

我是码头工人的新手,所以这对你来说似乎是非常基本的 - 无论如何 - 它此刻吓坏了我。

我决定在容器上开发一个新的web项目,当然我想到了docker。完成教程并阅读一些Dockerfiles之后,我决定使用docker-compose。

我想要多个撰写文件,一个用于开发,一个用于生产等等。现在我设法使用3种不同的服务来编排基本的php / mysql / redis应用程序。主要的应用程序是基于PHP并在项目src中维护。 Mysql和Redis只是配置了基本映像,不需要任何业务逻辑。

我可以建造容器并将它们带出来

建立:

docker-compose -f compose-Development.yml build

达:

docker-compose -f compose-Development.yml up

主应用程序容器中的许多文件都是由gulp(模板,css等)构建的,代码将存在于javascript和php中。

我注意到,当我更改文件时,我的应用状态不会改变。我将不得不重建并重新启动我的容器。

有了Vagrant的一些经验,我会在开发期间寻找某种共享源。但是我如何实现这一目标呢?

我的应用程序Dockerfile(用于开发)如下所示:

FROM webdevops/php-nginx:7.1
COPY ./ /app
COPY docker/etc/ /opt/docker/etc

# php config...
RUN ln -sf /opt/docker/etc/php/php.Development.ini /opt/docker/etc/php/php.ini

WORKDIR /app/
EXPOSE 80

撰写文件:

version: "3"
services:

  app:
    build:
      context: .
      dockerfile: Dockerfile.Development
    links:
      - mysql
      - redis
    volumes:
      - ./data/fileadmin:/app/public/fileadmin
      - ./data/uploads:/app/public/uploads
    env_file:
      - docker/env/All.yml
      - docker/env/Development.yml
    ports:
      - "80:80"
    restart: always

  # Mysql Container
  mysql:
    build:
      context: docker/mysql/
      dockerfile: Dockerfile
    restart: always
    volumes:
      - mysql:/var/lib/mysql
    env_file:
      - docker/env/All.yml
      - docker/env/Development.yml

  # Cache Backend Container
  redis:
    build:
      context: docker/redis/
      dockerfile: Dockerfile
    ports:
      - "6379:6379"
    volumes:
      - redis:/data
    env_file:
      - docker/env/All.yml
      - docker/env/Development.yml
    restart: always

volumes:
  mysql:
  redis:

到目前为止,我使用了一些github存储库来复制块。我知道我的设置中可能还有其他问题,目前最阻塞的问题是链接/复制源的问题。

亲切的问候,菲利普

docker docker-compose devops provisioning
1个回答
11
投票

“发展/生产平价”的概念在这方面让很多人感到困惑。这并不意味着您可以只使用一个配置,它将适用于所有内容;这意味着你将有更接近的平价,并且你可以创建一个类似于你在生产中非常接近的环境。

这里有什么问题,目前你正在构建你的图像,它将准备发货,它有你的代码,你有上传的卷等,真棒!

不幸的是,这种设置不适合开发。如果您想动态编辑代码 - 您还需要将本地工作目录作为卷附加到映像。这不会在生产中完成;所以它非常接近 - 但不完全相同的设置。

将以下内容添加到您的撰写文件的app服务卷部分,您应该很高兴:

- .:/app
© www.soinside.com 2019 - 2024. All rights reserved.