如何在本地编辑文件时在docker镜像中生效?

时间:2017-08-08 05:29:39

标签: docker docker-compose

我将我的开发项目作为docker image运行。我测试像;

#docker-compose up

我在本地编辑了一个文件。但是当我再次运行#docker-compose时,我看不到我的变化。我需要运行什么命令?

我的docker-compose.yml

version: '2'
services:
  app:
    image: lobdocker/eps-portal:latest
    volumes:
       - /var/www/storage
    env_file: '.env'
    working_dir: /app
    ports:
       - 8089:80

3 个答案:

答案 0 :(得分:1)

Docker撰写将始终在您指定图像时查找图像。

使用build属性指向一个本地文件夹,您可以在升级之前构建该文件夹。

version: '2'
services:
  app:
    build: mydir/
    image: lobdocker/eps-portal:latest
    volumes:
       - /var/www/storage
    env_file: '.env'
    working_dir: /app
    ports:
       - 8089:80

答案 1 :(得分:0)

在docker-compose之前,你必须再次构建docker镜像。这样的变化就会反映出来。虽然你已经建立了图像,但它不会花费太多时间。所以评论是

$ docker-compose build

然后

$ docker-compose up

注意: docker-compose up -d 将在后台运行

答案 2 :(得分:0)

如果您想要反映您的更改,您需要先commit图像, 这是命令 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 要从dockerfile提交更改,您必须使用--change选项,您可以获得更多信息here

要在容器内部更改代码,您可以使用docker exec命令来获取控制台访问权限,并且在容器被销毁之前,您所做的任何更改都将是他们的。