golang打包
小于 1 分钟
Dockerfile
FROM golang:1.21.5-alpine3.19 AS builder
#
WORKDIR /app/
## 设置golang代理
ENV GOPROXY=https://goproxy.cn,direct
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
RUN apk add --virtual .build-deps \
ca-certificates \
gcc \
g++ \
musl-dev
COPY . .
RUN go env && go build -o main .
FROM alpine:3.19
WORKDIR /app/
COPY /app/main /app/main
COPY /app/docker.yaml ./config.yaml
COPY /app/web/dist ./web/dist
RUN mkdir -p /app/data
RUN touch /app/database.sqlite
# 暴露端口号
EXPOSE 3000
# 运行应用程序
CMD ["./main"]
本地打包
docker build -t local/movie-player .
修改为线上版本
docker tag local/movie-player orangbus/movie-player:latest
发布dockerhub
docker push orangbus/movie-player:latest
docker-compose
version: "3.5"
services:
app:
image: orangbus/movie-player
container_name: movie-player
environment:
- APP_PORT=3000
ports:
- "3000:3000"
volumes:
- ./data:/app/data