Dockerとdocker composeでGo言語の開発環境を構築

この記事にはアフィリエイト広告が含まれています

Dockerとdocker composeを使って、必要なファイルのコピーや諸々の設定を反映済みのコンテナを作成してGo言語の開発環境を構築してみました。

Go言語の公式イメージを使って「docker run」コマンドにオプションを付けてコンテナを起動する方法でも構築はできるのですが、打ち込むコマンドを極力少なくしたかったのでdocker composeを併用しました。

「docker run」コマンドで構築する場合はこちらの記事をご覧ください。

目次

作成するコンテナの追加要件

  • GitHubにSSH接続できるようにする
  • GitHubのプライベートリポジトリをimportできるようにする

プライベートリポジトリをimportできるようにする手順についてはこちらの記事をご覧ください。

ディレクトリ構造とファイル

ディレクトリ構造とファイルは下記のようになります。

docker/golang
├── .gitconfig
├── Dockerfile
├── compose.yaml
├── config
├── id_ed25519_github
└── src
    └── main.go

「.gitconfig」はGitHubのプライベートリポジトリをimportできるようにするために必要なファイルです。「config」と「id_ed25519_github」はGitHubにSSH接続できるようにするために必要なファイルです。

各ファイルの中身は下記のようになります。

.gitconfig

[url "ssh://git@github.com/"]
        insteadOf = https://github.com/

Dockerfile

FROM golang:latest

RUN echo "Now building..."

RUN mkdir /root/.ssh
RUN mkdir /root/.key
RUN chmod 700 /root/.key

COPY .gitconfig /root/
COPY config /root/.ssh/
COPY id_ed25519_github /root/.key

RUN chmod 600 /root/.key/id_ed25519_github

WORKDIR /usr/src

compose.yaml

services:
  go:
    build: .
    tty: true
    volumes:
      - ./src:/usr/src

config

ServerAliveInterval 300
TCPKeepAlive yes

Host github.com
  HostName github.com
  User git
  IdentityFile /root/.key/id_ed25519_github
  Port 22

id_ed25519_github

-----BEGIN OPENSSH PRIVATE KEY-----
省略
-----END OPENSSH PRIVATE KEY-----

こちらのファイルはGitHubにSSH接続する際に使用する鍵ファイル(秘密鍵)になります。
事前に作成してGitHubに設定しておいてください。

コンテナの作成及び起動

ファイル一式のあるディレクトリ(今回でいえばdocker/golang)に移動して下記コマンドを実行します。

sudo docker compose up -d

作成及び起動が終わったら下記コマンドを実行して状況を確認してください。

sudo docker compose ps
NAME                IMAGE               COMMAND             SERVICE             CREATED             STATUS              PORTS
golang-go-1         golang-go           "bash"              go                  2 minutes ago       Up 2 minutes

サービス名は「go」、コンテナ名は「golang-go-1」で起動しているのが確認できます。

GitHubへのSSH接続の確認

下記のコマンドを実行してGitHubへのSSH接続が問題ないことを確認してください。

sudo docker compose exec -it go bash
ssh -T git@github.com

「Are you sure you want to continue connecting」と聞かれた場合には「yes」を入力してください。


まとめ

以上でDocker及びdocker composeを使ったGo言語の開発環境の構築は完了です。

この記事が参考になれば幸いです。


広告


この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次