Diary

Diary

日々学んだことをアウトプットする場として初めてみました

Go で是非とも使いたいオプション一覧

Go のコマンドには様々なオプションが存在します。

今回は、現時点でつけておいて損がないのではないかと思ってるフラグを紹介させてもらいます。

まとめ

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -trimpath -o ./api2 ./app

go test -race -cover -shuffle=on ./... -v

go run -race app/*

[目次]

続きを読む

【Cloudflare】R2 を Go から扱う

Cloudflare でオブジェクトストレージといえば R2 ですが、
ドキュメントにもあるように S3 との互換性を大切にしています。

今回は Cloudflare の web 画面での R2 バケットの作成から、s3 の sdk を使って object の作成・取得を試してみたいと思います。

※ 本記事の内容は 2024/02/16 現在の情報をもとに作成しております。

[目次]

続きを読む

【AWS-CLI】Lightsail の push-container-image 実行時に Is the docker daemon running? エラー

[目次]

環境

Host: mac m1
Docker: v24.0.6
Docker context: Docker Desktop
AWS CLI: aws-cli/2.13.25 Python/3.11.6 Darwin/22.1.0 source/arm64 prompt/off

まとめ

エラー内容

$ aws lightsail push-container-image --region ap-northeast-1 --service-name Amazon_Linux_2-1 --service-name container-service-1 --label testlabel --image web-backend:ee0e066df842

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Command '['lightsailctl', '--plugin', '--input-stdin']' returned non-zero exit status 1.

原因

Docker context の指す endpoint がデフォルト値(unix:///var/run/docker.sock)と異なること。

$ docker context ls
NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT                                  KUBERNETES ENDPOINT   ORCHESTRATOR
default             moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                                            
desktop-linux *     moby                Docker Desktop                            unix:///Users/kokoichi/.docker/run/docker.sock 

解決方法

コマンド実行時に HOST を明示して上書きしてあげる。

$ DOCKER_HOST=unix:///Users/kokoichi/.docker/run/docker.sock aws lightsail push-container-image --region ap-northeast-1 --service-name Amazon_Linux_2-1 --service-name container-service-1 --label testlabel --image sns-app-backend:ee0e066df842
続きを読む

正規表現でキャメルケースをスネークケースにする

ユースケース

HogeFuga → hogeFuga みたいな『先頭のみの大文字小文字を変換する』ということがしたいケースがありました。

同じ要領で『キャメルケース → スネークケース(逆も)』ができたのでその紹介です。

(注: 以下コマンドの結果はすべて GNU sed によるものです。)

まとめ

# キャメルケース → スネークケース
$ echo HogeFuga | gsed 's@[A-Z]@_\L&@g' | gsed 's/^_//'
hoge_fuga

# スネークケース → キャメルケース
$ echo hoge_fuga_pien | gsed -E 's@_(.)@\U\1@g'
hogeFugaPien
$ echo hoge_fuga_pien | gsed -E 's@_(.)@\U\1@g' | gsed 's@^.@\U&@'
HogeFugaPien
続きを読む

systemd で定期実行する

『systemd で定期実行をする』というよくある内容ですが、設定できたつもりになってた自分自身の反省を兼ねてメモしておきます。 (細かい設定方法については説明しません。)

systemd などのタスク系に関しては、うまく動いてるかの確認がより大事になってきます。

[目次]

続きを読む