😺

[Go] 開発環境構築からDockerイメージをGithub ActionsでPushするところまで

2020/11/23に公開

はじめに

Go言語に入門したWeb系エンジニアです。

Web系のGo言語界隈ではおそらく、CIパイプラインやDockerを使った開発が多そうなので、そのあたりの導入しておくべき内容の手順書を書いてみました。

これからGo言語を始める方は、下の3つのパターンに従って参考にしてみてください。

開発環境の構築をしたい方

  1. 開発環境を構築する

開発環境の構築とDockerイメージの作成をしたい方

Github ActionsでCIパイプラインも含めて導入したい方

開発環境を構築する

https://zenn.dev/youk/articles/qiita-20190728-cfe83037026e4f1e09d5

上の記事では、MacのVSCodeでの開発環境について書いています。
2020/11/23時点で、Goの公式が推奨しているツールを設定しています。
要点

  • リリース頻度の早いgo自体のバージョン管理 -> gvmを使う
  • go言語での実装時の文法ミス通知やfotmatなどのサポート -> goplsを使う
  • 依存する外部packageの管理 -> go modulesの設定

Dockerイメージを作成する

https://zenn.dev/youk/articles/qiita-20200620-3d088de91ab86bc71600

上の記事では、本番環境で動かせるDockerイメージ用のDockerファイルを作成します。

要点

  • 軽量でセキュアなscratchイメージ上で動く
  • go modulesに従って依存パッケージをインストールする

CIパイプライン(Github Actions)

https://zenn.dev/youk/articles/qiita-20201103-c43c8ae060b0111fcaaa

上の記事では、CIの代表的な要素として、テストとDockerイメージのビルドとプッシュまでを行っています。プッシュ先はDockerレジストリを設定しているので、必要に応じてお使いのレジストリの設定に変えてもらえればと思います。

要点
パイプライン内で以下を行います

  • testを実行する
  • testが通った後に、Dockerイメージのビルドを始める
  • ビルドが成功するとレジストリにDockerイメージをプッシュする

おわりに

良いGo言語ライフを!

Discussion