Dockerでgolang実行環境作成

備忘録
この記事は約3分で読めます。

golangを実行できるLocal環境を作製してみた。

環境情報

  • OS:macOS Sonoma
  • エディタ:VSCode
  • Golang:1.22.2

プロジェクト構成

プロジェクト名はSSMで試したいことあるので、適当につけた。

AWS-SDK-GO-V2-SSM/
├── ssmTest/
│ └── docker/
│     └── dockerfile
├── src/
└── docker-compose.yml

dockerfile

FROM  golang:1.22.2-alpine

WORKDIR /src

RUN apk update && \
    apk upgrade

docker-compose.yml

version: "3.8"
services:
  aws-sdk-go-v2-ssm:
    container_name: AWS-SDK-Go-v2-ssm
    build:
      context: .
      dockerfile: ./ssmTest/docker/dockerfile
    tty: true
    volumes:
      - ./ssmTest/src:/ssmTest
    ports:
      - 8080:8080

docker起動コマンド

% docker-compose down

下記のエラーが出た時はservices:の下のリポジトリ名で使用している大文字を小文字にすれば解決する。

Error response from daemon: no such image: aws-sdk-go-v2-ssm-AWS-SDK-Go-v2-ssm: invalid reference format: repository name must be lowercase

VSCodeの左下の大なり小なりが重なってるボタン押下する。

もしボタンがないほとは「Dev Containers」の拡張機の入れてください。

実行中の「コンテナーにアタッチ….」を押下する。

作製したコンテナを選択すると新しいプロジェクトが開く。

「フォルダを開く」押下してdocker-composeの「volumesタグ」で指定しているディレクトリを選択する。

下記コマンドを実行する。

/ssmTest # go mod init main
/ssmTest # touch main.go

適当にHello Worldを表示するソースを作成する。

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

下記コマンドを実行する。

/ssmTest # go run main.go

「Hello, World!」が表示されれば最低限、Dockerでgolangを実行する環境が整った。

おまけ

コンテナ上でgolangの開発をやっていくのであればやったほうがいいこと。

Goの拡張機能を入れる。

一番上の「Go」って書いてあるやつ。

「command+shift+p」押下ご「Go:Install/Update Tools」を選択し、すべてチェック入れて「OK」押下する。

goのversionが古かったりすると失敗したりする。

とりあえず1.22.2は大丈夫だった。

タイトルとURLをコピーしました