2025-04-12 02:58:19 +08:00
|
|
|
|
FROM node:22-alpine AS builder
|
2025-12-29 16:44:00 +08:00
|
|
|
|
|
2025-12-29 23:48:34 +08:00
|
|
|
|
# RUN apk add build-base
|
|
|
|
|
|
# RUN wget -O - https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2 | tar -xj && \
|
|
|
|
|
|
# cd jemalloc-5.3.0 && \
|
|
|
|
|
|
# ./configure && \
|
|
|
|
|
|
# make && \
|
|
|
|
|
|
# make install
|
2025-12-29 16:44:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-07-20 19:38:15 +08:00
|
|
|
|
WORKDIR /workspace/
|
2024-07-21 03:21:51 +08:00
|
|
|
|
COPY . /workspace/
|
2024-09-07 11:44:52 +08:00
|
|
|
|
# armv7 目前只能用node18, pnpm9不支持node18,所以pnpm只能用8.15.7版本
|
|
|
|
|
|
# https://github.com/nodejs/docker-node/issues/1946
|
2025-04-12 03:03:26 +08:00
|
|
|
|
RUN npm install -g pnpm
|
2024-07-20 19:38:15 +08:00
|
|
|
|
|
2024-07-26 22:01:42 +08:00
|
|
|
|
#RUN cd /workspace/certd-client && pnpm install && npm run build
|
|
|
|
|
|
RUN cp /workspace/certd-client/dist/* /workspace/certd-server/public/ -rf
|
2024-09-09 17:35:10 +08:00
|
|
|
|
RUN cd /workspace/certd-server && pnpm install && npm run build-on-docker
|
2024-07-20 19:38:15 +08:00
|
|
|
|
|
2024-12-09 22:40:17 +08:00
|
|
|
|
|
2025-09-27 08:26:18 +08:00
|
|
|
|
|
2025-04-12 02:58:19 +08:00
|
|
|
|
FROM node:22-alpine
|
2024-11-08 14:14:21 +08:00
|
|
|
|
EXPOSE 7001
|
|
|
|
|
|
EXPOSE 7002
|
2025-12-29 16:44:00 +08:00
|
|
|
|
|
2025-12-29 23:48:34 +08:00
|
|
|
|
# 安装jemalloc内存分配器,优化内存占用 -- 基本没用,反而更高了
|
|
|
|
|
|
# COPY --from=builder /usr/local/lib/libjemalloc.so.2 /usr/local/lib/
|
|
|
|
|
|
# ENV LD_PRELOAD=/usr/local/lib/libjemalloc.so.2
|
2025-12-29 16:44:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-09-05 14:33:45 +08:00
|
|
|
|
RUN apk add --no-cache openssl
|
2024-11-02 21:23:42 +08:00
|
|
|
|
RUN apk add --no-cache openjdk8
|
2024-07-20 19:38:15 +08:00
|
|
|
|
WORKDIR /app/
|
|
|
|
|
|
COPY --from=builder /workspace/certd-server/ /app/
|
2024-11-02 23:37:25 +08:00
|
|
|
|
|
2025-11-25 00:48:21 +08:00
|
|
|
|
COPY ./patch/ssh2/*.js /app/node_modules/.pnpm/node_modules/ssh2/lib/protocol/
|
|
|
|
|
|
|
2025-12-29 16:44:00 +08:00
|
|
|
|
ENV LEGO_VERSION=4.30.1
|
2025-04-12 03:03:26 +08:00
|
|
|
|
ENV LEGO_DOWNLOAD_DIR=/app/tools/lego
|
2024-11-04 13:32:02 +08:00
|
|
|
|
RUN mkdir -p $LEGO_DOWNLOAD_DIR
|
|
|
|
|
|
|
|
|
|
|
|
# 根据架构下载不同的文件
|
|
|
|
|
|
RUN ARCH=$(uname -m) && \
|
|
|
|
|
|
if [ "$ARCH" = "x86_64" ]; then \
|
2024-11-04 22:09:23 +08:00
|
|
|
|
wget -O $LEGO_DOWNLOAD_DIR/lego_v${LEGO_VERSION}_linux_amd64.tar.gz https://github.com/go-acme/lego/releases/download/v${LEGO_VERSION}/lego_v${LEGO_VERSION}_linux_amd64.tar.gz; \
|
2024-11-04 13:32:02 +08:00
|
|
|
|
elif [ "$ARCH" = "aarch64" ]; then \
|
2024-11-04 22:09:23 +08:00
|
|
|
|
wget -O $LEGO_DOWNLOAD_DIR/lego_v${LEGO_VERSION}_linux_arm64.tar.gz https://github.com/go-acme/lego/releases/download/v${LEGO_VERSION}/lego_v${LEGO_VERSION}_linux_arm64.tar.gz; \
|
2024-11-04 13:32:02 +08:00
|
|
|
|
else \
|
|
|
|
|
|
echo "Unsupported architecture: $ARCH"; \
|
|
|
|
|
|
fi
|
2024-10-30 16:12:08 +08:00
|
|
|
|
|
2025-04-12 03:03:26 +08:00
|
|
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
|
|
ENV MIDWAY_SERVER_ENV=production
|
2024-07-20 19:38:15 +08:00
|
|
|
|
CMD ["npm", "run","start"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|