version: '3'
services:
api:
build: .
ports:
- 8000:8000
depends_on:
- mongo
- redis
networks:
- backend
mongo:
container_name: mongo-server
build: ./dev/mongo/.
volumes:
- ./data:/data/db
networks:
- backend
redis:
container_name: redis-server
image: redis
networks:
- backend
networks:
backend:
- 使用内部网络 backend
- Redis,mongo容器均使用默认端口,不对外暴露端口,在程序内部直接使用服务替代具体的服务地址
- mongo 数据持久化到本地
Go的dockerfile
FROM golang:latest
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io,direct
ENV GO111MODULE=on
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN go build -o api .
ENTRYPOINT ["/app/api"]