1

SpringブートアプリケーションのDockerイメージをAWS Elastic Beanstalkにデプロイしようとしていますが、/var/log/eb-activity.logにこのエラーがあります:jarfileにアクセスできない - Elastic BeanstalkのDocker

Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Wed Jun 22 11:56:25 UTC 2016:

Error: Unable to access jarfile /home/packedit/app/packed-it.jar. Check snapshot logs for details. (Executor::NonZeroExitStatus)

これは以下Dockerrun.aws.jsonを有する弾性豆の木に単一の容器である:

{ 
    "AWSEBDockerrunVersion": "1", 
    "Image": { 
    "Name": "packedit/packedit-api", 
    "Update": "true" 
    }, 
    "Ports": [ 
    { 
     "ContainerPort": "8080" 
    } 
    ], 
    "Volumes": [ 
    { 
     "HostDirectory": "/var/app/packedit", 
     "ContainerDirectory": "/home/packedit/app" 
    } 
    ], 
    "Logging": "/home/packedit/app/logs" 
} 

これはDockerfileある:

FROM java:8 
MAINTAINER [email protected] 
VOLUME /tmp 
EXPOSE 8080 

ENV USER_NAME packedit 
ENV APP_HOME /home/$USER_NAME/app 
ENV APP_FILENAME packed-it.jar 

RUN useradd -ms /bin/bash $USER_NAME 
RUN mkdir -p $APP_HOME/data 

ADD $APP_FILENAME $APP_HOME/$APP_FILENAME 
RUN chown -R $USER_NAME $APP_HOME/ 

USER $USER_NAME 
WORKDIR $APP_HOME 
RUN bash -c 'touch $APP_FILENAME' 

# Can't use $APP_FILENAME here because ENTRYPOINT does not do ENV replacement 
# See: http://stackoverflow.com/a/28854410/336752 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","packed-it.jar"] 

ECSを使用してDockerイメージをEC2インスタンスに正常にデプロイしましたが、私はElastic Beanstalkで成功しませんでした。私の推測では、ボリュームについて何か間違っていますが、私はdocumentationを理解するのに苦労しています。私はもともとはマルチコンテナの設定から始めましたが、私の問題を解決するために単純化しました。

ありがとうございました。

答えて

2

あなたのDockerrun.aws.jsonからライン

"ContainerDirectory": "/home/packedit/app"

を削除する必要があります。

混乱のようですが、docker volumesの仕組みと思われます。ボリュームは実行時に割り振られ、同じマシン上で連続して実行されます。

ここには何が起こっているのですか?ドッカーイメージは/ home/packedit/appにjarで作成されますが、同じ場所にボリュームを定義しているため、そのボリュームを実行してその場所にマウントすると、空のボリュームが作成されます。したがって、画像の同じディレクトリは無視されます。ここで

は、ローカルで問題を再現する方法です:ブリリアント

docker build . 
docker run -v /home/packedit/app IMAGEID_FROM_OUTPUT_OF_PREVIOUS_COMMAND 
+0

!本当にありがとう、それは本当に犯人だった。実際、 'volumes'プロパティ全体を削除しました。今、マルチコンテナを今すぐ設定することができます... – Stu

関連する問題