从 Dockerfile 调用时 lein deps 退出
lein deps exits when called from Dockerfile
lein deps
从 Dockerfile RUN
命令调用时退出。这意味着我无法预加载我的 .m2 存储库。
我可以tty进入docker容器,并成功运行lein deps
在WORKDIR
。但是 none 这些命令在 Dockerfile 中有效。
RUN lein deps
RUN /bin/bash -c 'lein deps'
RUN ["/bin/bash", "-c", "lein deps"]
他们都产生了这个错误。
The command 'lein deps' returned a non-zero code: 1
我的 Dockerfile 看起来像这样。
FROM pandeiro/lein:latest
COPY . /app
WORKDIR /app
RUN lein deps
ENTRYPOINT ["/bin/bash"]
Docker 的 best practices guide 建议单独复制稍后 Docker 文件步骤将使用的文件。通过最初仅在其余文件之前复制 project.clj
,我能够 运行 lein deps
成功。
FROM pandeiro/lein:latest
COPY project.clj /app
RUN lein deps
COPY . /app
ENTRYPOINT ["/bin/bash"]
(此外,pandeiro/lein
创建了 /app
并将其设置为 WORKDIR
,所以我省略了这些步骤。)
lein deps
从 Dockerfile RUN
命令调用时退出。这意味着我无法预加载我的 .m2 存储库。
我可以tty进入docker容器,并成功运行lein deps
在WORKDIR
。但是 none 这些命令在 Dockerfile 中有效。
RUN lein deps
RUN /bin/bash -c 'lein deps'
RUN ["/bin/bash", "-c", "lein deps"]
他们都产生了这个错误。
The command 'lein deps' returned a non-zero code: 1
我的 Dockerfile 看起来像这样。
FROM pandeiro/lein:latest
COPY . /app
WORKDIR /app
RUN lein deps
ENTRYPOINT ["/bin/bash"]
Docker 的 best practices guide 建议单独复制稍后 Docker 文件步骤将使用的文件。通过最初仅在其余文件之前复制 project.clj
,我能够 运行 lein deps
成功。
FROM pandeiro/lein:latest
COPY project.clj /app
RUN lein deps
COPY . /app
ENTRYPOINT ["/bin/bash"]
(此外,pandeiro/lein
创建了 /app
并将其设置为 WORKDIR
,所以我省略了这些步骤。)