RUN
命令调用时, lein deps
退出。这意味着我无法预加载我的.m2存储库。
我 可以 tty进入docker容器并成功运行WORKDIR
中的RUN lein deps
RUN /bin/bash -c 'lein deps'
RUN ["/bin/bash", "-c", "lein deps"]
。但这些命令都不适用于Dockerfile。
The command 'lein deps' returned a non-zero code: 1
他们都会产生这个错误。
FROM pandeiro/lein:latest
COPY . /app
WORKDIR /app
RUN lein deps
ENTRYPOINT ["/bin/bash"]
我的Dockerfile看起来像这样。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_marginTop="1dp"
android:layout_marginBottom="1dp"
android:src="@drawable/ok" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="@+id/label"
android:textSize="20dp" >
</TextView>
</LinearLayout>
答案 0 :(得分:1)
Docker的best practices guide建议单独复制将在以后的Dockerfile步骤中使用的文件。通过最初只在其余文件之前复制project.clj
,我能够成功运行lein deps
。
FROM pandeiro/lein:latest
COPY project.clj /app
RUN lein deps
COPY . /app
ENTRYPOINT ["/bin/bash"]
(另外,pandeiro/lein
创建/app
并将其设置为WORKDIR
,因此我省略了这些步骤。)