Files
ferry/Dockerfile

57 lines
1.9 KiB
Docker
Raw Permalink Normal View History

2024-11-19 11:53:20 +08:00
FROM node:22.11.0-alpine3.20 as web
2020-11-11 08:54:47 +08:00
2021-11-11 01:36:51 +08:00
WORKDIR /opt/workflow
2020-11-11 08:54:47 +08:00
2021-11-11 01:36:51 +08:00
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
RUN apk update && \
apk add --no-cache git && \
rm -rf /var/cache/apk/* /tmp/* /var/tmp/* $HOME/.cache
2024-11-19 11:53:20 +08:00
RUN git clone https://github.com/lanyulei/ferry_web
2020-11-11 08:54:47 +08:00
2021-11-11 01:36:51 +08:00
WORKDIR ferry_web
2024-11-19 11:53:20 +08:00
RUN npm install -g pnpm --registry=https://registry.npmmirror.com
RUN export NODE_OPTIONS=--openssl-legacy-provider && pnpm install
2021-11-11 01:36:51 +08:00
RUN echo $'# just a flag\n\
ENV = \'production\'\n\n\
# base api\n\
VUE_APP_BASE_API = \'\''\
> .env.production
2024-11-19 11:53:20 +08:00
RUN export NODE_OPTIONS=--openssl-legacy-provider && pnpm run build:prod
2021-11-11 01:36:51 +08:00
2025-03-21 12:43:20 +08:00
FROM golang:1.23-alpine3.20 AS build
2020-11-11 08:54:47 +08:00
2021-11-11 01:36:51 +08:00
WORKDIR /opt/workflow/ferry
COPY . .
ARG GOPROXY="https://goproxy.cn"
2020-11-11 08:54:47 +08:00
RUN go mod download
2021-11-11 01:36:51 +08:00
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o ferry .
2020-11-11 08:54:47 +08:00
2024-11-19 11:53:20 +08:00
FROM alpine:3.20.3 AS prod
2021-04-13 11:32:34 +08:00
2025-03-21 12:43:20 +08:00
LABEL maintainer="lanyulei"
2021-04-13 11:32:34 +08:00
2022-08-16 18:45:15 +08:00
RUN echo -e "http://mirrors.aliyun.com/alpine/v3.11/main\nhttp://mirrors.aliyun.com/alpine/v3.11/community" > /etc/apk/repositories \
&& apk add -U tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2021-11-11 01:36:51 +08:00
WORKDIR /opt/workflow/ferry
2021-04-13 11:32:34 +08:00
2021-11-11 01:36:51 +08:00
COPY --from=build /opt/workflow/ferry/ferry /opt/workflow/ferry/
COPY config/ /opt/workflow/ferry/default_config/
COPY template/ /opt/workflow/ferry/template/
COPY docker/entrypoint.sh /opt/workflow/ferry/
2021-04-13 11:32:34 +08:00
RUN mkdir -p logs static/uploadfile static/scripts static/template
2021-11-11 01:36:51 +08:00
RUN chmod 755 /opt/workflow/ferry/entrypoint.sh
RUN chmod 755 /opt/workflow/ferry/ferry
COPY --from=web /opt/workflow/ferry_web/web /opt/workflow/ferry/static/web
COPY --from=web /opt/workflow/ferry_web/web/index.html /opt/workflow/ferry/template/web/
RUN mv /opt/workflow/ferry/static/web/static/web/* /opt/workflow/ferry/static/web/
RUN rm -rf /opt/workflow/ferry/static/web/static
2021-04-13 11:32:34 +08:00
EXPOSE 8002
2021-11-11 01:36:51 +08:00
VOLUME [ "/opt/workflow/ferry/config" ]
ENTRYPOINT [ "/opt/workflow/ferry/entrypoint.sh" ]