2016-11-14 43 views
3

工作我有配置下Dockerfile和正常工作:多克爾 - 撰寫無法運行一個jar文件,但與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" ] 

現在我想運行相同,但使用泊塢窗,撰寫,所以我儘量使用相同的sintaxys,這是我的搬運工,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問題

泊塢窗,撰寫版本1.8.1

+0

什麼版本找到更多細節docker-compose你在用嗎? –

回答

1

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

  • 多克爾 - 撰寫不支持命令add。如果要將文件添加到容器中,則必須在Dockerfile(並使用撰寫文件中的文件)中執行該操作,或通過volume映射文件。

    volumes: 
        - "./farr-api-0.1.0.jar:/app.jar" 
    
  • environment部分預計數組 - 你需要前綴用破折號JAVA_OPTS行:

    environment: 
        - JAVA_OPTS="" 
    

您可以的Docker-Compose documentation

+0

真的非常感謝,但我怎樣才能通過捲來映射文件? –

+0

我已經更新了我的答案,以顯示如何在文件中映射。我建議你閱讀Docker Compose文檔,看看這些東西是如何配置的。到目前爲止,您的所有問題都有Docker Compose文檔中的答案和示例。 – nwinkler

+0

它工作得很好:)我會去閱讀文檔。謝謝 –