Skip to content

Instantly share code, notes, and snippets.

@iamucil
Last active July 31, 2021 09:40
Show Gist options
  • Save iamucil/c9972901350942f2426c190a8bcb71d3 to your computer and use it in GitHub Desktop.
Save iamucil/c9972901350942f2426c190a8bcb71d3 to your computer and use it in GitHub Desktop.
Auto loading go(lang) code dengan docker-compose

Autoloading go(lang) code menggunakan docker-compose

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

Docker compose file

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment