web-dev-qa-db-ja.com

ファイルと値のパラメーターを取得するローカルアプリケーションのDockerイメージを作成する方法

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を実行した

しかし、私はいくつかの行き止まりで立ち往生しています。

  1. Jarファイルをホストからイメージ/コンテナーにコピーするにはどうすればよいですか?
  2. 2つのパラメーターが必要です。 1はファイルであり、実行時にコンテナのディレクトリにコピーする必要があります。もう1つは、ユーザーがパラメーターを指定してJava -jarを実行したときに、docker runコマンドでjarファイルに自動的に渡される必要がある番号です。

追記:

Jarファイルはローカルファイルです。 wgetなどからアクセスできる場所ではホストされません。現時点で最も近いのは、それを含むWindows共有です。 gitリポジトリからソースにアクセスすることもできますが、これにはすべてをコンパイルし、イメージにmavenとgitをインストールする必要があるため、それを避けたいと思います。

どんな助けでも大歓迎です。

12
mangusbrother
  1. Dockerfileで、ADDなどを使用してローカルファイルを追加します。

    ADD your-local.jar /some-container-location
    
  2. ボリュームを使用して、実行時にコンテナにファイルを配置できます。

    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のドキュメント をご覧ください。)

24
frvi

ファイル構造が次のようであると仮定します

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 .
3
Riddhi Gohil