始める前に
お使いのアーティファクトリポジトリー(NexusまたはArtifactory)でDockerレジストリーが設定されていることを確認します。
手順
-
コマンドプロンプトかターミナルを開いて次のコマンドを実行し、アーティファクトをビルドして遠隔のNexus Dockerレジストリーにデプロイメントします。
$ mvn -Dgeneration.type=local -Dproduct.path=<STUDIO_HOME> -s <STUDIO_HOME>/configuration/maven_user_settings.xml \
deploy -Pdocker \
-f <GIT_PROJECT_PATH>/<STUDIO_PROJECT>/poms \
-pl jobs/process/demorest_0.1,jobs/routes/demorestroute_0.1,jobs/routes/directsedademo_0.1 \
-Djkube.docker.username=<username> -Djkube.docker.password=<password> -Djkube.docker.push.registry=<ARTIFACT_REPOSITORY_HOST>:<DOCKER_REGISTRY_PORT>
[INFO] Scanning for projects...
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] <STUDIO_PROJECT> DemoREST-0.1.0 (0.1,Jobs) Microservice Jar [jar]
[INFO] <STUDIO_PROJECT> DirectSEDADemo-0.1.0 (0.1,Routes) Microservice Jar [jar]
[INFO] <STUDIO_PROJECT> DemoRESTRoute-0.1.0 (0.1,Routes) Microservice Jar [jar]
...
[INFO] --- fabric8-maven-plugin:4.0.0:push (push-image) @ DemoREST ---
[INFO] F8> The push refers to repository [<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorest]
[INFO] F8> latest: digest: sha256:a63c7e4672efc1632fd696eb24fe0a7dba89c0b5697b96b370f98546c6e2108e size: 1993
[INFO] F8> Pushed <STUDIO_PROJECT>/demorest in 8 seconds
[INFO] F8> The push refers to repository [<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorest]
[INFO] F8> 0.1.0: digest: sha256:a63c7e4672efc1632fd696eb24fe0a7dba89c0b5697b96b370f98546c6e2108e size: 1993
...
[INFO] --- fabric8-maven-plugin:4.0.0:push (push-image) @ DirectSEDADemo ---
[INFO] F8> The push refers to repository [<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/directsedademo]
[INFO] F8> latest: digest: sha256:0de9fe92ae8f4a39c7af7a676682f4a6868b4416deebc52acc4f581e0a2e16c4 size: 1992
[INFO] F8> Pushed <STUDIO_PROJECT>/directsedademo in 4 seconds
[INFO] F8> The push refers to repository [<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/directsedademo]
[INFO] F8> 0.1.0: digest: sha256:0de9fe92ae8f4a39c7af7a676682f4a6868b4416deebc52acc4f581e0a2e16c4 size: 1992
...
[INFO] --- fabric8-maven-plugin:4.0.0:push (push-image) @ DemoRESTRoute ---
[INFO] F8> The push refers to repository [<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute]
[INFO] F8> latest: digest: sha256:080892fee69d06676da35aaf57bfe7ff7c4e1a544fb08b0ca86976b5d44e015e size: 1992
[INFO] F8> Pushed <STUDIO_PROJECT>/demorestroute in 5 seconds
[INFO] F8> The push refers to repository [<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute]
[INFO] F8> 0.1.0: digest: sha256:080892fee69d06676da35aaf57bfe7ff7c4e1a544fb08b0ca86976b5d44e015e size: 1992
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for <STUDIO_PROJECT> DemoREST-0.1.0 (0.1,Jobs) Microservice Jar 0.1.0:
[INFO]
[INFO] <STUDIO_PROJECT> DemoREST-0.1.0 (0.1,Jobs) Microservice Jar SUCCESS [02:54 min]
[INFO] <STUDIO_PROJECT> DirectSEDADemo-0.1.0 (0.1,Routes) Microservice Jar SUCCESS [ 35.323 s]
[INFO] <STUDIO_PROJECT> DemoRESTRoute-0.1.0 (0.1,Routes) Microservice Jar SUCCESS [ 32.586 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:08 min
[INFO] Finished at: 2019-08-12T10:12:03+02:00
[INFO] ------------------------------------------------------------------------
ここで
- <STUDIO_HOME>にはTalend Studioのインストールパスが入ります。
- <GIT_PROJECT_PATH>には、お使いのGitプロジェクトかGitクローン結果のパスが入ります。
- <STUDIO_PROJECT>にはTalend Studioのプロジェクト名が入ります。これはGitプロジェクトと同じ名前です。プロジェクト名は大文字であることが必要です。
- <ARTIFACT_REPOSITORY_HOST>にはアーティファクトリポジトリー(NexusまたはArtifactory)のホストが入ります。
- <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>には、アーティファクトリポジトリー(NexusまたはArtifactory)で設定されているDockerレジストリーのURLのホストが入ります。
- <DOCKER_REGISTRY_PORT>には、Dockerレジストリー(Nexusのみ)へのアクセス用にバインドされたポートが入ります。
ヒント: Dockerに公開している間に-Dstudio.prometheus.metrics=trueコマンドを使えば、CamelのメトリクスをPrometheusに公開し、デプロイメントされたルートの詳細(処理交換数、エラー数、秒あたりのリクエスト数など)が提供されます。
-
Dockerレジストリーに接続し、遠隔のDockerレジストリーからローカルのDockerレジストリーにプルします。
$ docker login <ARTIFACT_REPOSITORY_HOST>:<DOCKER_REGISTRY_PORT>
Login Succeeded
$ docker pull <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute
Using default tag: latest
latest: Pulling from <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute
Digest: sha256:4c8afd00802eef89197c65f6855e2dfc1609ca518022526207fcb4c56709e958
Status: Downloaded newer image for <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute:latest
<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute:latest
$ docker pull <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorest
Using default tag: latest
latest: Pulling from repository/local-docker/jgr_docker_ci/demorest
Digest: sha256:a63c7e4672efc1632fd696eb24fe0a7dba89c0b5697b96b370f98546c6e2108e
Status: Downloaded newer image for <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorest:latest
<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorest:latest
$ docker pull <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/directsedademo
Using default tag: latest
latest: Pulling from repository/local-docker/jgr_docker_ci/directsedademo
Digest: sha256:0de9fe92ae8f4a39c7af7a676682f4a6868b4416deebc52acc4f581e0a2e16c4
Status: Downloaded newer image for <ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/directsedademo:latest
<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/directsedademo:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorestroute latest 5901eb7a8c7d 1 minute ago 258MB
<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/directsedademo latest 36aaa145fd80 1 minute ago 237MB
<ARTIFACT_REPOSITORY_DOCKER_REGISTRY>/<STUDIO_PROJECT>/demorest latest afdaba21fb8a 1 minute ago 307MB