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は大丈夫だった。