为什么我在工作目录中所做的更改没有显示在我的Docker容器中?

时间:2017-01-29 18:11:25

标签: docker parse-platform

我想通过Docker运行测试parse-dashboard,如自述文件中所述。

我收到错误消息," Parse Dashboard只能通过HTTPS远程访问。"通常,您可以通过在parse-dashboard-config.json文件中添加行"allowInsecureHTTP": true来绕过此操作。但即使我已将此选项添加到配置文件中,也会显示相同的消息。

我尝试在Docker容器中编辑配置文件,于是我发现我的本地文件都没有更改容器中的位置。看起来好像我的项目是来自github存储库的代码的未修改版本。

为什么我对主机上工作目录中的文件所做的更改未显示在Docker容器中?

2 个答案:

答案 0 :(得分:0)

  

但它是什么上传到我的docker,它实际上是我的主分支的配置文件。

取决于:

  • “docker”是什么:官方DockerHub或私人码头注册?
  • 如何上传:您是否构建了一个图片,然后使用docker push,或者您只是将git push恢复为您的GitHub回购?

基本上,如果您希望在Docker容器中看到正确的文件,那么您必须确保在Dockerfile之后运行您构建的图像(docker build){{3}来自您当前的工作区 如果您从右侧分支检出Git仓库的文件夹中执行docker build,您将获得包含正确文件的图像。

答案 1 :(得分:0)

您关联的Dockerfile存储库中的parse-dashboard使用ADD . /src。这是一种不好的做法(因为你遇到的问题)。您可以采用两种不同的方法来解决它:

每次重建图像

每当您更改工作目录中的任何(Dockerfile ADD/src)时,您需要重建以使更改生效。例外情况是src/Parse-Dashbaord/parse-dashboard-config.json,我们将使用卷装入。{1}}。工作流程几乎与自述文件中的工作流程相同:

$ docker build -t parse-dashboard .
$ docker run -d -p 8080:4040 -v ./src/Parse-Dashbaord/parse-dashboard-config.json:/src/Parse-Dashboard/parse-dashboard-config.json parse-dashboard

使用卷

如果我们要使用卷来执行此操作,我们甚至不需要项目附带的自定义Dockerfile。我们将使用Dockerfile所基于的官方Node图像。

在这种情况下,Docker不会为您运行构建过程,因此您应该在启动Docker之前在主机上自行完成:

$ npm install
$ npm run build

现在,我们可以启动通用Node Docker镜像,并要求它为我们的项目目录服务。

$ docker run -d -p 8080:4040 -v ./:/src node:4.7.2 "cd /src && npm run dashboard"

更改将立即生效,因为您将./作为卷安装到图像中。因为没有使用ADD,所以每次都不需要重建图像。我们可以使用通用节点图像,因为如果我们不是ADD目录并运行构建命令,那么我们的图像与官方图像的作用不同。