簡體   English   中英

Docker-compose無法運行jar文件,但可以使用Dockerfile

[英]Docker-compose failing to run a jar file but works with Dockerfile

我已經配置了下一個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

docker-compose.yml文件中有兩個語法錯誤:

  • Docker-Compose不支持add命令。 如果要將文件添加到容器中,則必須在Dockerfile執行此Dockerfile (並使用compose文件中的文件),或者通過volume映射文件。

      volumes: - "./farr-api-0.1.0.jar:/app.jar" 
  • environment部分需要一個數組 - 您需要在JAVA_OPTS行前加一個破折號:

      environment: - JAVA_OPTS="" 

您可以在Docker-Compose文檔中找到更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM