dockercompose でGoの環境構築
はじめに
docker かなり初心者。dockercompose の使い方を勉強した備忘録。
問題
docker-compose を使って Go 環境を作成する
解決方法
↓ を参考に最低限の Go 環境を作成する
DockerでGo言語の開発環境を作る方法
フォルダ構成
project
├backend
│ └Dockerfile
│ └cmd/
│ └─api/
│ └─main.go
└docker-compose.yml
DockerFile
FROM golang:1.19.1-alpine3.16
WORKDIR /app
COPY ./backend .
CMD ["go", "run", "./cmd/api"]
docker-compose
version: "3.8"
services:
backend:
build:
dockerfile: ./backend/Dockerfile
ports:
- 8080:8080
volumes:
- ./backend:/app
作業中のメモ
作成する中でのメモを残す
- docker-compose.yml メモ
- image
- コンテナを作成するイメージの指定
- イメージがローカルにない場合は Docker Hub から取得する
- build が指定されている場合は DockerFile から作成されたイメージのイメージ名になる
- build
- dockerfile
- ビルド時に DockerFile からイメージを作成する
- dockerfile
- volumes
- volume の指定(データの永続化)
- ローカルをマウントすることができる
- image
- コマンドメモ
docker compose up
docker-compose.yml に従ってコンテナを作成する
-d オプションをつけることでバックグラウンドで起動できる(デタッチモード)
--build で起動前にビルドできる
docker compose down
docker compose up で作成したコンテナを停止してコンテナとネットワークを削除する
docker compose run --rm backend sh
コンテナ内でコマンドを実行する。
例のようにすると backend(サービス名)を起動して sh を実行するためコンテナ内を操作することができる
--rm オプションをつけるとコンテナから exit した時にコンテナを削除する
おわりに
まだこれで開発が楽にできるって具体的な方法がイメージができていない。
引き続き自分が Docker でできることを増やす