環境構築の続き
- golang
- postgres
所々ごまかしながらやっている部分もありますが、おおよそいいのではないかと思います。
フォルダ構成
.- docker-compose.yml |- .env |- docker | |- go | |- DockerFile
docker-compose.yml
version: '3' services: api: container_name: api image: api build: docker/go ports: - 8888:8888 environment: DRIVERNAME: "postgres" POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} # for psql PGUSER: ${PGUSER} PGPASSWORD: ${PGPASSWORD} PGDATABASE: ${POSTGRES_DB} links: - postgres - pgweb tty: true volumes: - .:/go/src postgres: container_name: postgres image: postgres:alpine environment: POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} # for psql PGUSER: ${PGUSER} PGPASSWORD: ${PGPASSWORD} PGDATABASE: ${POSTGRES_DB} ports: - ${PG_PORT}:${PG_PORT} volumes: - db_data:/var/lib/postgresql/data pgweb: container_name: pgweb restart: always image: sosedoff/pgweb environment: - DATABASE_URL=postgres://${PGUSER}:${POSTGRES_PASSWORD}@postgres:${PG_PORT}/${POSTGRES_DB}?sslmode=disable depends_on: - postgres ports: - "8081:8081" expose: - ${PGWEB_PORT} volumes: db_data:
.env
POSTGRES_PASSWORD=postgres POSTGRES_DB=test_db PGUSER=postgres PGPASSWORD=kokoichi PG_PORT=5432 PGWEB_PORT=8081
DockerFile
FROM golang:1.16-alpine RUN apk update && apk add git WORKDIR /go/src/ RUN apk update && \ apk add --no-cache git && \ go get -u github.com/gin-gonic/gin && \ go get -u github.com/lib/pq RUN GO111MODULE=on go get github.com/volatiletech/sqlboiler/v4@latest RUN GO111MODULE=on go get github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-psql@latest # マイグレーション用のパッケージ RUN apk add curl RUN curl -L https://github.com/golang-migrate/migrate/releases/download/v4.11.0/migrate.linux-amd64.tar.gz | tar xvz RUN mv ./migrate.linux-amd64 /usr/bin/migrate EXPOSE 8080