我已经配置了下一个Dockerfile,它运行正常:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD farr-api-0.1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
现在我想运行相同但使用docker-compose,所以我尝试使用相同的sintaxys,这是我的docker-compose.yml:
多克尔-compose.yml:
jar:
image: frolvlad/alpine-oraclejdk8:slim
volumes:
- /tmp
add: "farr-api-0.1.0.jar" "app.jar"
command: sh -c 'touch /app.jar'
environment:
JAVA_OPTS=""
entrypoint: [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
它会引发下一次失败:
ERROR: yaml.parser.ParserError: while parsing a block mapping
in "./docker-compose.yml", line 2, column 3
expected <block end>, but found '<scalar>'
in "./docker-compose.yml", line 5, column 29
我认为这可能是sintax问题
Docker-compose版本1.8.1
答案 0 :(得分:2)
docker-compose.yml
文件中有两个语法错误:
Docker-Compose不支持add
命令。如果要将文件添加到容器中,则必须在Dockerfile
中执行此操作(并使用撰写文件中的文件),或通过volume
在文件中进行映射。
volumes:
- "./farr-api-0.1.0.jar:/app.jar"
environment
部分需要一个数组 - 您需要在JAVA_OPTS
行前加一个短划线:
environment:
- JAVA_OPTS=""