はじめに
前の投稿でjenkinsのgoプラグインを使ってgoを実行してみましたが、
これ別にプラグインいらないんじゃ・・・
と思ったので試してみたという内容です。
jenkinsのdockerにgoをインストールしてけば良いだけの話。
ディレクトリ構成とファイル
ディレクトリ構成
ubuntu@MyEC2 ~/jenkins % tree -a --charset=C . |-- Dockerfile |-- docker-compose.yaml `-- work 1 directory, 2 files
Dockerfileだけ増えてます。
docker-compose.yaml
version: "3" services: jenkins: build: . container_name: jenkins network_mode: host volumes: - ./work:/var/jenkins_home environment: TZ: Asia/Tokyo tty: true
Dockerfileを使うのでimageをbuildに変更
Dockerfile
FROM jenkins:2.60.3 USER root WORKDIR /TEST RUN wget https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz \ && tar -C /usr/local -xzf go1.12.1.linux-amd64.tar.gz ENV PATH $PATH:/usr/local/go/bin WORKDIR / RUN rm -rf /TEST USER jenkins
jenkinsのimageにgo1.12.1をインストールしています。
やり方
前回の「goを動かしてみる」でhello.goを配置したあとの話。
jenkinsでgoのプラグインをインストールしないで「プロジェクト testwork」の設定をビルド→シェルスクリプトを選択して「go run hello.go」として保存します。
あとはビルドするだけです。
Started by user admin Building in workspace /var/jenkins_home/workspace/testwork [testwork] $ /bin/sh -xe /tmp/jenkins3274436986825013282.sh + go run hello.go Hello World! from golang Finished: SUCCESS
問題なく実行できてますね。
最後に
プラグイン入れるよりdockerで環境整えたほうが早いかも。