跳至主要內容

golang打包

OrangBus小于 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 --from=builder /app/main /app/main
COPY --from=builder /app/docker.yaml ./config.yaml
COPY --from=builder /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