Buat docker file untuk development development.Dockerfile
FROM cosmtrek/air AS loader
FROM golang:1.16
WORKDIR /workspace
# hot loading
COPY --from=loader /go/bin/air /go/bin/air
COPY ./.air.toml /root/.air.toml
ENTRYPOINT ["air", "-c", "/root/.air.toml"]
download .air.toml
sample dari source sample dan sesuaikan dengan kebutuhan. Baca detail konfigurasi dari https://github.com/cosmtrek/air
wget https://raw.githubusercontent.com/cosmtrek/air/master/air_example.toml -O .air.toml
Buat atau modifikasi docker-compose.yaml
, jika tidak ingin merubah existing docker-compose.yaml
buat file docker-compose.override.yaml
version: '3'
services:
core-db:
image: postgres:12.2-alpine
ports:
- "6432:5432"
environment:
- POSTGRES_DB=iam
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=TWraMMPD69Uy5UjW
rest:
build:
context: .
dockerfile: ./development.Dockerfile
volumes:
- "./:/workspace"
Bagian yang perlu di perhatikan adalah:
volumes:
- "./:/workspace"
Mount working directory ke dalam working directory yang ada di dalam container.
Jalankan docker-compose dengan perintah docker-compose up --build
tambahkan parameter -d
jika ingin dijalankan secara background. Jalankan docker-compose up
dari root directory.
Setelah semua service yang ada di dalam docker-compose.yaml sudah jalan, lakukan perubahan pada file go(lang) simpan file, perubahan akan langsung otomatis di build ulang.