-
Notifications
You must be signed in to change notification settings - Fork 62
Open
Description
when I build with plugin in docker. the docker file like this:
# 第一阶段:使用 answer-builder 构建 answer
FROM apache/answer as answer-builder
# 第二阶段:使用 golang 构建插件和新的 answer
FROM golang:1.19-alpine AS golang-builder
# 设置国内 Go 模块代理
ENV GOPROXY=https://goproxy.cn,direct
# 复制 answer 可执行文件
# set alpine linux 代理
COPY --from=answer-builder /usr/bin/answer /usr/bin/answer
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装构建所需依赖和 pnpm
RUN apk --no-cache add \
build-base git bash nodejs npm go && \
npm config set registry https://registry.npmmirror.com && \
npm install -g pnpm@8.9.2 && \
pnpm config set registry https://registry.npmmirror.com && \
echo "Dependencies installed successfully"
# 增加 npm 和 pnpm 的超时时间和重试次数
RUN npm config set fetch-retries 5 && \
npm config set fetch-retry-mintimeout 20000 && \
npm config set fetch-retry-maxtimeout 120000 && \
pnpm config set fetch-retries 5 && \
pnpm config set fetch-retry-mintimeout 20000 && \
pnpm config set fetch-retry-maxtimeout 120000
# 启用缓存机制,避免重复下载依赖
RUN npm config set cache /root/.npm-cache --global && \
pnpm config set store-dir /root/.pnpm-store
# 强制更新 Browserslist 数据库,使用国内的 npm 镜像
RUN npm config set registry https://registry.npmmirror.com && \
npx update-browserslist-db@latest || true
# 使用 answer build 构建插件并输出新的 answer
RUN answer build \
--with github.com/apache/incubator-answer-plugins/user-center-wecom \
--output /usr/bin/new_answer \
&& ls -l /usr/bin/new_answer
# 第三阶段:最终构建镜像
FROM alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
LABEL maintainer="linkinstar@apache.org"
# 设置默认时区为 Asia/Shanghai
ARG TIMEZONE
ENV TIMEZONE=${TIMEZONE:-"Asia/Shanghai"}
# 安装基础依赖和设置时区
RUN apk update \
&& apk --no-cache add \
bash \
ca-certificates \
curl \
dumb-init \
gettext \
openssh \
sqlite \
gnupg \
tzdata \
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
&& echo "${TIMEZONE}" > /etc/timezone
# 复制新构建的 answer 可执行文件和其他必要文件
COPY --from=golang-builder /usr/bin/new_answer /usr/bin/answer
COPY --from=answer-builder /data /data
COPY --from=answer-builder /entrypoint.sh /entrypoint.sh
# 设置 entrypoint 脚本的执行权限
RUN chmod 755 /entrypoint.sh
# 挂载 /data 目录
VOLUME /data
# 暴露 80 端口
EXPOSE 80
# 设置 entrypoint
ENTRYPOINT ["/entrypoint.sh"]
the process always stuck here.
=> [answer golang-builder 8/8] RUN answer build --with github.com/apache/incubator-answer-plugins/user-center-wecom --output /usr/bin/new_answer && ls -l /usr/bin/new_answer 1302.2s
=> => # > answer-static@0.1.0 build /go/answer_build43967365/vendor/github.com/apache/incubator-answer/ui
=> => # > node ./scripts/env.js && react-app-rewired build
=> => # Creating an optimized production build...
=> => # Browserslist: caniuse-lite is outdated. Please run:
=> => # npx update-browserslist-db@latest
=> => # Why you should do it regularly: https://github.com/browserslist/update-db#readme
Because I am in China, so reference to the official configuration file, I have added a lot of proxy settings, does this have anything to do with the unsuccessful build?
Metadata
Metadata
Assignees
Labels
No labels