无法使用ENTRYPOINT Docker运行script.sh

时间:2017-11-21 13:27:03

标签: docker docker-compose dockerfile

我有以下脚本:

echo "** Creating data volume."
docker volume create --name sData

echo "** Build the java image that will be used to compile a Java class."
docker build -t bh/java:1.0 ./Java

echo "** Run the Java container to compile a Java class."
docker run --name "java-compile" -v sData:/usr/src/data bh/java:1.0

在Java文件夹中,我有以下Dockerfile:

FROM openjdk:7 AS build-env

# Copy java file to compile and run
COPY ./Main.java /usr/src/myapp/Main.java

WORKDIR /usr/src/myapp

RUN ls -al

# Copy script.sh to root folder
COPY ./script.sh /usr/src/data/script.sh

RUN chmod 777 /usr/src/data/script.sh

ENTRYPOINT ["sh", "/usr/src/data/script.sh"]

以及script.sh文件:

#!bin/sh

# Go to myapp
cd /usr/src/myapp

#echo "Listing all files in directory - myapp"
ls -al

#echo "Compiling the java class"
javac Main.java

# Move the .class file
echo "Moving Main.class to /usr/data/Main.class"
mv /usr/src/myapp/Main.class /usr/src/data/Main.class

cd /usr/src/data

#echo "Listing all files in directory - data"
ls -al

当我如上所述运行容器时,出现以下错误:

: not foundta/script.sh: 2: /usr/src/data/script.sh: 's: invalid option -- ' Try 'ls --help' for more information. : not foundta/script.sh: 4: /usr/src/data/script.sh: : not foundta/script.sh: 5: /usr/src/data/script.sh: : not foundta/script.sh: 8: /usr/src/data/script.sh: : not foundta/script.sh: 11: /usr/src/data/script.sh: : not foundta/script.sh: 14: /usr/src/data/script.sh: : not foundta/script.sh: 18: /usr/src/data/script.sh: : not foundta/script.sh: 20: /usr/src/data/script.sh:

1 个答案:

答案 0 :(得分:1)

另一个问题可能是" WORKDIR"在COPY命令之前。 当前目录已更改为/ usr / src / myapp并在./中复制搜索文件 如果您的dockerfile和脚本位于同一个文件夹中,您只需将其称为" COPY script.sh / usr / src / data"

相关问题