[英]How to run a custom jar file copy to classpath command using java?
[英]How to run the COPY and RUN command in same container?
我正在嘗試將Java從rpm文件安裝到docker centos映像。
> Step 0 : FROM centos:latest
---> **34943839435d**
Step 1 : COPY . jdk-6u45-linux-x64-rpm.bin
---> **2055e5db6ae9**
Removing intermediate container 7ae13aaa4424
Step 2 : RUN chmod +x jdk-6u45-linux-x64-rpm.bin && sh jdk-6u45-linux-x64-rpm.bin
---> Running in **c4d6b63576bc**
jdk-6u45-linux-x64-rpm.bin: jdk-6u45-linux-x64-rpm.bin: is a directory
2014/12/16 06:03:34 The command [/bin/sh -c chmod +x jdk-6u45-linux-x64-rpm.bin && sh jdk-6u45-linux-x64-rpm.bin] returned a non-zero code: 126
它給出的錯誤似乎是由於不同的容器。 如何在同一容器上運行命令?
Docker文件如下
FROM centos:latest
# Install Java.
COPY . jdk-6u45-linux-x64-rpm.bin
RUN chmod +x jdk-6u45-linux-x64-rpm.bin && \
sh jdk-6u45-linux-x64-rpm.bin
COPY
語法如下:
COPY <src>... <dest>
所以COPY . jdk-6u45-linux-x64-rpm.bin
COPY . jdk-6u45-linux-x64-rpm.bin
表示將當前目錄復制為jdk-6u45-linux-x64-rpm.bin
。 因此,錯誤。
這應該給您您想要的:
COPY jdk-6u45-linux-x64-rpm.bin jdk-6u45-linux-x64-rpm.bin
您的RUN命令實際上在同一容器中運行,該命令本身只是失敗了,可能是因為您未正確設置路徑。
這是一個非常相似的docker文件的示例,該文件可以正確構建和運行(順便說一句,不需要/ bin / sh -c,因為這正是run命令正在執行的操作)
FROM centos:latest
COPY test.bin /root/
RUN /bin/sh -c "chmod +x /root/test.bin"
有關運行命令的更多信息,請參見https://docs.docker.com/reference/builder/#run
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.