angularjs - 更改我的项目文件不会更改 Docker 机器内的文件

标签 angularjs docker docker-compose dockerfile angular2-seed

我正在尝试使用 Docker 来改进我的工作流程。我安装了"Docker Toolbox for Windows"在我的 Windows 10 家庭版上(因为 Docker 只能在专业版上运行)。我正在使用 mgexhev's angular-seed它声称提供完整的 docker 支持。有一个链接 ./.docker/angular-seed.development.dockerfile 的 docker-compose.yml 文件。

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

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

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

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

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,因为我在某处读到,不使用“home”目录可能存在一些访问权限问题,但这没有任何区别。

我也有点困惑,说明说访问 localhost: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 机器在虚拟机 VM 中运行 docker。默认情况下,我相信 c:\Users 共享到虚拟机中,但您需要检查虚拟框设置以确认这一点。您尝试映射到容器的任何主机目录都是从 VM 映射的,因此如果您的文件夹未共享到该 VM,则不会包含您的文件。

通过 IP,localhost 可以在 Linux 主机和适用于 windows/mac 的较新版本的 docker 上运行。旧的基于 docker-machine 的安装需要使用 virtual box VM 的 IP。

关于angularjs - 更改我的项目文件不会更改 Docker 机器内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41925212/

相关文章:

javascript - 仅调用成功处理程序 - AngularJS

javascript - ionic 不从变量返回数据

javascript - AngularJS - 不尊重 Z-Index 更改上下滑动 Div

django - 如何在 django rest 框架的分页 URL 中更改下一个键中的主机?

docker compose 命令 down 和 up 不会创建新的图像和容器

python - Docker:优雅地停止 django 服务器

python - flask 容器异常行为

javascript - 在 AngularJs 中验证后隐藏表单

docker-compose 使用包含实验功能的 Dockerfile 构建

即使在重建之后,Docker 仍不使用最新版本