😺
[Go] 開発環境構築からDockerイメージをGithub ActionsでPushするところまで
はじめに
Go言語に入門したWeb系エンジニアです。
Web系のGo言語界隈ではおそらく、CIパイプラインやDockerを使った開発が多そうなので、そのあたりの導入しておくべき内容の手順書を書いてみました。
これからGo言語を始める方は、下の3つのパターンに従って参考にしてみてください。
開発環境の構築をしたい方
開発環境の構築とDockerイメージの作成をしたい方
Github ActionsでCIパイプラインも含めて導入したい方
開発環境を構築する
上の記事では、MacのVSCodeでの開発環境について書いています。
2020/11/23時点で、Goの公式が推奨しているツールを設定しています。
要点
- リリース頻度の早いgo自体のバージョン管理 -> gvmを使う
- go言語での実装時の文法ミス通知やfotmatなどのサポート -> goplsを使う
- 依存する外部packageの管理 -> go modulesの設定
Dockerイメージを作成する
上の記事では、本番環境で動かせるDockerイメージ用のDockerファイルを作成します。
要点
- 軽量でセキュアなscratchイメージ上で動く
- go modulesに従って依存パッケージをインストールする
CIパイプライン(Github Actions)
上の記事では、CIの代表的な要素として、テストとDockerイメージのビルドとプッシュまでを行っています。プッシュ先はDockerレジストリを設定しているので、必要に応じてお使いのレジストリの設定に変えてもらえればと思います。
要点
パイプライン内で以下を行います
- testを実行する
- testが通った後に、Dockerイメージのビルドを始める
- ビルドが成功するとレジストリにDockerイメージをプッシュする
おわりに
良いGo言語ライフを!
Discussion