1

https://spring.io/guides/gs/spring-boot-docker/によれば、アプリケーションのハードコードされた名前とバージョンを使用して、SpringBootアプリケーション用のDocker画像を作成できます。例えば:Gradleを使用したSpringBootアプリケーション用の汎用ドッカー画像とドッカーファイル

のsrc /メイン/ドッキングウィンドウ/ Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim 
VOLUME /tmp 
ADD gs-spring-boot-docker-0.1.0.jar app.jar 
RUN sh -c 'touch /app.jar' 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 

ただし、名前やアプリのバージョンを変更するとドッカーはあなたのbuild.gradleタスクに置くコマンドを構築破ります。

build.gradle

task buildDocker(type: Docker, dependsOn: build) { 
    push = true 
    applicationName = jar.baseName 
    dockerfile = file('src/main/docker/Dockerfile') 
    doFirst { 
    copy { 
     from jar 
     into stageDir 
    } 
    } 
} 

buildDockerアプリからDockerfileと実行ジャーステージング、および「ドッカービルド」を実行することにより、画像を構築するコマンドのGradle。名前を考えると

質問

がDockerfileに静的であり、どのように私は、ドッキングウィンドウのイメージを構築するとき、私は、バージョン、または名前も私のSpringBootアプリケーションを変更すると、私のビルドを壊さないために、この設定を変更できますか?

答えて

0

Dockerfileからバックトラックするには、単に「app.jar」を追加する必要があります。だから、

ADD gs-spring-boot-docker-0.1.0.jar app.jar 

から

ADD app.jar app.jar 

にこれは、生成された実行可能Jarファイルの名前を変更するか、コピーの必要性につながります。この例では、実行可能なjarの名前を "app.jar"に変更しているため、ドッカーのイメージを簡単に作成できます。 Gradleに組み込まれる任意のSpringBootアプリにコピーできる一般的なタスクは、以下で見つけることができます。

build.gradle

/** 
* Generic support for building docker images for SpringBoot Apps 
*/ 
task buildDocker(type: Docker, dependsOn: build) { 
    push = false 
    applicationName = rootProject.name 
    dockerfile = file('src/main/docker/Dockerfile') 

    doFirst { 
    // Rename the app jar to "app.jar" so that the Dockerfile does not require renames 
    copy { 
     from "${project.buildDir}/libs" 
     into stageDir 
     include "${rootProject.name}-${version}.jar" 
     rename("${rootProject.name}-${version}.jar", "app.jar") 
    } 
    } 

    doLast { 
    println "Run the Docker Container" 
    println "docker run -ti -p 8080:8080 $project.group/$applicationName:$version" 
    } 
} 

次のように最終的な結果のDockerfileである:

SRC /メイン/ドッカー/ Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim 
MAINTAINER [email protected] 
VOLUME /tmp 
ADD app.jar app.jar 
RUN sh -c 'touch /app.jar' 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 

コマンドが "のGradle buildDocker" ドッカー画像を生成しますボーナスとして、アプリケーションを実行するための完全なコマンドが表示されます(デフォルトのポート番号はハードコードされており、値を変更する場合は変更する必要があります)。

関連する問題