- 投稿日:
確認環境
Env | Ver | Misc |
---|---|---|
golang | 1.16.4-alpine3.13 | DockerImage |
VSCode | 1.56.0 | |
golang.go | 0.24.2 | VSCode 拡張 |
サンプルコード
Dockerfile
シェルが貧弱なので、ついでに好きなシェルも入れておくのが無難
FROM golang:1.16.4-alpine3.13
RUN apk add git gcc libc-dev
RUN go get golang.org/x/tools/gopls \
&& go get -u github.com/go-delve/delve/cmd/dlv
.vscode/settings.json
- あとはF5を押せば起動する
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch file",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}/"
},
]
}
トラブルシュート
デバッグしようとして起きるエラーとか
上のサンプルコードを使っている限り起きないはず
exec: "gcc": executable file not found in $PATH
gccを入れれば解決する
_cgo_export.c:3:10: fatal error: stdlib.h: No such file or directory
libc-devを入れれば解決する
- 投稿日:
docker-compose up -d
した時にコンテナを上げっぱなしにする方法
コンテナ内で開発したいときとかに使える
サンプルコード
docker-compose.yaml
で上げっぱにしたいサービスにtty: true
を追加するだけ。これ以外だと落ちないプロセスを生やすくらいしかない
services:
foo:
tty: true
- 投稿日:
run
コマンドでサービスを指定してコマンドを蹴ると実行結果が取れる- e.g.
docker-compose run node-git 'npm' 't'
- e.g.
- コマンドを複数繋げる場合はシェルを呼び出してやる
- e.g.
docker-compose run node-git 'sh' '-c' '"ls -la && grep foo"'
- e.g.