从 Dockerfile 调用时 lein deps 退出

lein deps exits when called from Dockerfile

lein deps 从 Dockerfile RUN 命令调用时退出。这意味着我无法预加载我的 .m2 存储库。

可以tty进入docker容器,并成功运行lein depsWORKDIR。但是 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,所以我省略了这些步骤。)