Dockerイメージから実行したいJavaアプリケーション(jarファイル)があります。
Centosをベースとして使用してイメージを作成し、Javaをインストールするために、Dockerfileを作成しました。
Dockerfile
FROM centos
RUN yum install -y Java-1.7.0-openjdk
画像me/Java7を取得するためにdocker build -t me/Java7
を実行した
しかし、私はいくつかの行き止まりで立ち往生しています。
Java -jar
を実行したときに、docker run
コマンドでjarファイルに自動的に渡される必要がある番号です。追記:
Jarファイルはローカルファイルです。 wgetなどからアクセスできる場所ではホストされません。現時点で最も近いのは、それを含むWindows共有です。 gitリポジトリからソースにアクセスすることもできますが、これにはすべてをコンパイルし、イメージにmavenとgitをインストールする必要があるため、それを避けたいと思います。
どんな助けでも大歓迎です。
Dockerfileで、ADDなどを使用してローカルファイルを追加します。
ADD your-local.jar /some-container-location
ボリュームを使用して、実行時にコンテナにファイルを配置できます。
VOLUME /copy-into-this-dir
そして、あなたは使用して実行します
docker run -v=/location/of/file/locally:/copy-into-this-dir -t me/Java7
ENTRYPOINTとCMDを使用して引数を渡すことができます。
ENTRYPOINT ["Java", "-jar", "/whatever/your.jar"]
CMD [""]
そして再び使用して実行します
docker run -v=/location/of/file/locally:/copy-into-this-dir -t me/Java7 --myNumber 42
( Dockerfileのドキュメント をご覧ください。)
ファイル構造が次のようであると仮定します:
DockerTest
└── Dockerfile
└── local.jar
Dockerfileのコンテンツは:になります
FROM centos
RUN yum install -y Java-1.7.0-openjdk
EXPOSE 8080
ADD /local.jar fatJar.jar
ENTRYPOINT ["Java","-jar","fatJar.jar"]
次のコマンドを使用:
$ cd DockerTest
$ docker build -f Dockerfile -t demo .