30 lines
950 B
Docker
30 lines
950 B
Docker
FROM golang:1.16-rc-buster
|
|
WORKDIR /openpbl
|
|
RUN go env -w CGO_ENABLED=0 GOPROXY=https://goproxy.io,direct GOOS=linux GOARCH=amd64 \
|
|
&& apt update && apt install sudo \
|
|
&& wget https://nodejs.org/dist/v12.22.0/node-v12.22.0-linux-x64.tar.gz \
|
|
&& sudo tar xf node-v12.22.0-linux-x64.tar.gz \
|
|
&& sudo apt install wait-for-it
|
|
ENV PATH=$PATH:/openpbl/node-v12.22.0-linux-x64/bin
|
|
RUN npm install -g yarn
|
|
|
|
COPY web/package.json /openpbl/web/package.json
|
|
RUN cd web && yarn install
|
|
|
|
COPY web /openpbl/web
|
|
RUN cd web && yarn build && rm -rf node_modules
|
|
|
|
COPY ./ /openpbl
|
|
RUN cd /openpbl && go build main.go
|
|
|
|
|
|
FROM alpine:3.7
|
|
COPY --from=0 /openpbl /
|
|
COPY --from=0 /usr/bin/wait-for-it /
|
|
RUN set -eux \
|
|
&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
|
|
&& apk update \
|
|
&& apk upgrade \
|
|
&& apk add bash
|
|
ENV RUNMODE=prod
|
|
CMD ./wait-for-it openpbl-db:3308 && ./main |