更改我的项目文件不会更改Docker机器中的文件

我正在尝试使用Docker来改进我的工作stream程。 我在我的Windows 10家庭版上安装了“Docker Toolbox for Windows” (因为Docker应该只在专业上工作)。 我正在使用mgexhev的angular度种子 ,声称提供完整的docker支持。 有一个docker-compose.yml文件,链接一个./.docker/angular-seed.development.dockerfile。

在git克隆种子项目后,我可以通过运行种子项目的github页面上给出的命令来启动它。 所以我可以看到运行后的应用程序:

$ docker-compose build $ docker-compose up -d 

但是,当我用Visual Studio代码更改代码并保存livereload不起作用。 我可以看到我的更改的唯一方法是通过重新运行构build和命令(它重新运行npm install; 5分钟)。

在Docker的文档中,他们说“将主机目录挂载为数据卷”,以便能够“更改源代码并实时查看其对应用程序的影响”

 docker run -v //c/<path>:/<container path> 

但是当我使用docker-compose时,我不确定这是否正确? 我也试过跑步:

 docker run -d -P --name web -v //c/Users/k/dev/:/home/app/ angular-seed docker run -p 5555:5555 -v //c/Users/k/dev/:/home/app/ -w "/home/app/" angular-seed docker run -p 5555:5555 -v $(pwd):/home/app/ -w "/home/app/" angular-seed 

和许多类似的命令,但似乎没有任何工作。

我尝试将我的项目从C:/ dev / project移动到家,因为我在某处读取了可能存在一些不使用“home”目录的访问权限问题,但这没有什么区别。

我也有点困惑,说明访问本地主机:5555。 我必须去dockerIP:5555看应用程序(万一这有助于任何人明白为什么我的代码不会更新我的docker容器内)。

当然,我的变化应该自动移动到docker环境或docker是不是非常有用的发展:)

看着你链接到的docker-compose.yml,我没有看到任何卷条目。 没有这些,主机上的文件和容器内的文件之间就没有可能的连接。 您需要一个包含卷条目的docker-compose.yml,例如:

 version: '2' services: angular-seed: build: context: . dockerfile: ./.docker/angular-seed.development.dockerfile command: npm start container_name: angular-seed-start image: angular-seed networks: - dev-network ports: - '5555:5555' volumes: - .:/home/app/angular-seed networks: dev-network: driver: bridge 

Docker-machine在虚拟机箱虚拟机内部运行docker。 默认情况下,我相信c:\ Users被共享到VM中,但是您需要检查虚拟框设置来确认。 您试图映射到容器中的任何主机目录都是从虚拟机映射的,因此如果您的文件夹不共享到该虚拟机,则不会包含您的文件。

有了IP,本地主机可以在Linux主机上运行,​​而新版本的Docker for Windows / Mac也可以运行。 较早的基于docker-machine的安装需要使用虚拟机VM的IP。

Interesting Posts