48 lines
1020 B
Docker
48 lines
1020 B
Docker
# build front-end
|
|
FROM node:lts-alpine AS web_image
|
|
|
|
RUN npm install pnpm -g
|
|
|
|
WORKDIR /build
|
|
|
|
COPY ./package.json /build
|
|
|
|
COPY ./pnpm-lock.yaml /build
|
|
|
|
RUN pnpm install
|
|
|
|
COPY . /build
|
|
|
|
RUN pnpm run build
|
|
|
|
# build backend
|
|
FROM golang:1.19 as server_image
|
|
|
|
WORKDIR /build
|
|
|
|
COPY ./service .
|
|
|
|
|
|
# 执行指令 关闭链接确认
|
|
RUN go env -w GO111MODULE=on \
|
|
&& go env -w GOPROXY=https://goproxy.cn,direct \
|
|
&& export PATH=$PATH:/go/bin \
|
|
&& go install -a -v github.com/go-bindata/go-bindata/...@latest \
|
|
&& go install -a -v github.com/elazarl/go-bindata-assetfs/...@latest \
|
|
&& go-bindata-assetfs -o=assets/bindata.go -pkg=assets assets/... \
|
|
&& go build -o sun-panel --ldflags="-X sun-panel/global.RUNCODE=release -X sun-panel/global.ISDOCKER=docker" main.go
|
|
|
|
|
|
# run_image
|
|
FROM ubuntu
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=web_image /build/dist /app/web
|
|
|
|
COPY --from=server_image /build/sun-panel /app/sun-panel
|
|
|
|
RUN apt-get update && apt-get install -y ca-certificates &&./sun-panel -config
|
|
|
|
CMD ./sun-panel
|