Hello World¶
Concourse の基本的なコンセプトは、Task を実行することです。 以下のようにコマンドラインから、また WebUI のパイプラインの Job 画面から(チュートリアルの他のセクションでも同様に)直接実行することができます。
From the same directory in which you previously deployed the Docker Concourse image (verify by running ls -l
and looking for the docker-compose.yml
file), start the local Concourse server.
docker-compose up
Now clone the Concourse Tutorial repo, switch to the task-hello-world directory, and run the command to execute the task_hello_world.yml
task.
git clone https://github.com/starkandwayne/concourse-tutorial.git
cd concourse-tutorial/tutorials/basic/task-hello-world
fly -t tutorial execute -c task_hello_world.yml
Task の実行結果は、以下のような出力から始まります。
executing build 1 at http://127.0.0.1:8080/builds/1
initializing
Concourse のすべての Task は"コンテナ"の中で実行されます(正確には、"ターゲットとした platform" 上で動作します)。 task_hello_world.yml
の設定内容を見ると、busybox
コンテナイメージを使って linux
platform 上で走っていることを示しています。 ログを見ると、Docker イメージの busybox
がダウンロードされていることが分かります。 これは一度だけ行う必要があります(最新の busybox
イメージがあるたびに再チェックします)。
このコンテナ内では echo hello world
コマンドを実行します。
Task:task_hello_world.yml
は以下のようになっています:
---
platform: linux
image_resource:
type: docker-image
source: {repository: busybox}
run:
path: echo
args: [hello world]
Task が進むと、その後 echo hello world
が正常に呼び出されていることがわかります:
running echo hello world
hello world
succeeded
表示されたURL http://127.0.0.1:8080/builds/1 を使うと WebUI でも実行結果を確認できます。CLI を使わずとも Task の実行結果を得られて便利です。
NOTE
You'll need to login to Concourse to view this page. The default credentials are admin / admin
Task の Docker イメージ¶
次に、image_resource:
と run:
を変更して、別の Task を実行してみましょう:
---
platform: linux
image_resource:
type: docker-image
source: {repository: ubuntu}
run:
path: uname
args: [-a]
この Task は下記のファイル名で用意されています:
fly -t tutorial execute -c task_ubuntu_uname.yml
Task の実行結果は、以下のようになります:
executing build 2 at http://127.0.0.1:8080/builds/2
initializing
...
running uname -a
Linux fdfa0821-fbc9-42bc-5f2f-219ff09d8ede 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
succeeded
実行時のベースになるimage
(Task 実行時 におけるimage_resource
) を選択できるのは、Task の実行に必要な依存関係の整理を行う為です。Task の実行中に毎回依存する基本ライブラリなどをインストールするのではなく、image
にあらかじめそれらを用意したものを用いることで、Task を遥かに高速に実行することができます。
ちなみに¶
Concourse を使って新しい Docker イメージを作成したい場合、Docker イメージの作成・利用 をご覧ください。