2017-12-22 8 views
0

mockとtomcatをドッカーで使用してJava Webアプリケーションを配備しようとしています。私は2つのDockerfilesを使用しています.1つは私のMavenプロジェクト用、もう1つはTomcat用のDocker-Composeで作成して、次にMavenコンテナから.warファイルをtomcatコンテナにコピーしますが、本当に好きではありません。ボリュームでそれを行う方法があり、私の質問であることを確かめてください。私のファイルは、これらの...Docker Compose - ボリュームを使用してtomcat上でJava Webアプリケーション(warファイル)を実行する

のmaven Dockerfile

FROM maven:3.5.2-jdk-8 

RUN git clone mygitproject 

# Create app directory 
WORKDIR mics-project 

RUN mvn install 

TomcatのDockerfile_tc

FROM tomcat:8.0-jre8 

# Create app directory 
WORKDIR /usr/local/tomcat/bin 

CMD ["catalina.sh", "run"] 

EXPOSE 8080 

ドッキングウィンドウ-compose.yml

version: '3' 
services: 
    maven: 
     container_name: maven-container 
     build: 
      context: . 
      dockerfile: Dockerfile 

    tomcat: 
     container_name: tomcat-container 
     build: 
      context: . 
      dockerfile: Dockerfile_tc 
     ports: 
      - "8080:8080" 

ですし、私は.BATファイルを持っており、私の戦争ファイルをtomcatにコピーするいくつかのコマンドを実行しています...

cd C:\Users\Administrator\Project\mics-project 

del "mics-project.war" >nul 2>&1 

start docker cp maven-container:/mics-project/target/mics-project.war c:/Users/Administrator/Project/mics-project 

start docker cp c:/Users/Administrator/Project/mics-project/mics-project.war tomcat-container:/usr/local/tomcat/webapps/ 

これは機能します。しかし、私はどのように私のdocker-compose.ymlファイルでこれらのコマンドを実行する代わりにボリュームを使用できますか?

答えて

0

あなたはこのブロックが構築するためにTomcatと平行に下になるYAMLファイルに直接

volumes: 
    - Path_on_local_pc:Path_on_container 

をボリュームを使用することができますし、ポート

tomcat: 
    container_name: tomcat-container 
    build: 
     context: . 
     dockerfile: Dockerfile_tc 
    ports: 
     - "8080:8080" 
    volumes: 
     - Path_on_local_pc:Path_on_container 

あなたは同様に追加することができます。

参考資料 - https://www.linux.com/learn/docker-volumes-and-networks-compose

+0

こんにちは、ありがとうございました!私のコードをgitからmavenコンテナに直接ダウンロードしています。私はコードやローカルの.warファイルを持っていません。私の場合、Path_on_local_pcとは何ですか? – hmmaros

+0

コンテナにコピーするファイル。そのファイルのパスになります – Arora20

+0

しかし、私がコピーしたいファイルは他のコンテナにあります。 warファイルはmavenコンテナにあり、このファイルをtomcatコンテナにコピーしたいと思います。たぶん私は2つのボリュームが必要ですか? – hmmaros

関連する問題