使用 Docker/Dockerfile/docker compose 提高效率
使用 Docker/Dockerfile/docker compose 提高效率

使用 Docker/Dockerfile/docker compose 提高效率

 

docker 命令

1. 打包镜像(复制上级目录)

Dockerfile 中时执行 Copy ../Add ../ 是无效的,解决办法:指定 Dockerfile 的 build 目录。
docker build -t productsort -f ./cmd/productsort/Dockerfile ./

docker-compose

1. 命令

# 启动当前目录的 docker-compose.yml 文件,-d 后台运行 docker-compose up -d # 使用 Dockerfile 定制镜像 docker build -t app:latest .

2. phpmyadmin&mysql

version: '3' services: db: image: mysql:5.7 container_name: db environment: MYSQL_ROOT_PASSWORD: my_secret_password MYSQL_DATABASE: app_db MYSQL_USER: db_user MYSQL_PASSWORD: db_user_pass ports: - "6033:3306" volumes: - dbdata:/var/lib/mysql phpmyadmin: image: phpmyadmin/phpmyadmin container_name: pma links: - db environment: PMA_HOST: db PMA_PORT: 3306 PMA_ARBITRARY: 1 restart: always ports: - 8081:80 volumes: dbdata:

Go 项目 Dockerfile

这是一个 Go 项目的 Dockerfile 文件例子,可根据该文件进行镜像打包。
FROM golang:alpine AS builder LABEL stage=gobuilder ENV CGO_ENABLED 0 ENV GOOS linux ENV GOPROXY https://goproxy.cn,direct WORKDIR /build/zero ADD go.mod . ADD go.sum . RUN go mod download COPY . . COPY etc /app/etc RUN go build -ldflags="-s -w" -o /app/bigdataapi bigdataapi.go FROM alpine RUN apk update --no-cache && apk add --no-cache ca-certificates tzdata ENV TZ Asia/Shanghai WORKDIR /app COPY --from=builder /app/bigdataapi /app/bigdataapi COPY --from=builder /app/etc /app/etc EXPOSE 8888 CMD ["./bigdataapi", "-f", "etc/bigdataapi-api.yaml"]

参考