mirror of
https://github.com/nocobase/nocobase.git
synced 2026-09-01 14:57:36 +08:00
edbebf8966
* fix: docs conf * fix: conf * fix: conf
88 lines
3.0 KiB
Docker
88 lines
3.0 KiB
Docker
FROM node:20-bookworm as builder
|
|
ARG VERDACCIO_URL=http://host.docker.internal:10104/
|
|
ARG COMMIT_HASH
|
|
ARG APPEND_PRESET_LOCAL_PLUGINS
|
|
ARG BEFORE_PACK_NOCOBASE="ls -l"
|
|
ARG PLUGINS_DIRS
|
|
|
|
ENV PLUGINS_DIRS=${PLUGINS_DIRS}
|
|
|
|
RUN apt-get update && apt-get install -y jq expect
|
|
|
|
RUN expect <<EOD
|
|
spawn npm adduser --registry $VERDACCIO_URL
|
|
expect {
|
|
"Username:" {send "test\r"; exp_continue}
|
|
"Password:" {send "test\r"; exp_continue}
|
|
"Email: (this IS public)" {send "test@nocobase.com\r"; exp_continue}
|
|
}
|
|
EOD
|
|
|
|
WORKDIR /tmp
|
|
COPY . /tmp
|
|
|
|
SHELL ["/bin/bash", "-c"]
|
|
|
|
RUN yarn install && yarn build --no-dts && \
|
|
CURRENTVERSION="$(jq -r '.version' lerna.json)" && \
|
|
IFS='.-' read -r major minor patch label <<< "$CURRENTVERSION" && \
|
|
if [ -z "$label" ]; then CURRENTVERSION="$CURRENTVERSION-rc"; fi && \
|
|
cd /tmp && \
|
|
NEWVERSION="$(echo $CURRENTVERSION).$(date +'%Y%m%d%H%M%S')" && \
|
|
git checkout -b release-$(date +'%Y%m%d%H%M%S') && \
|
|
yarn lerna version ${NEWVERSION} -y --no-git-tag-version && \
|
|
git config user.email "test@mail.com" && \
|
|
git config user.name "test" && git add . && \
|
|
git commit -m "chore(versions): test publish packages" && \
|
|
yarn release:force --registry $VERDACCIO_URL && \
|
|
yarn config set registry $VERDACCIO_URL && \
|
|
cd /tmp/docs && \
|
|
yarn install && \
|
|
yarn rspress build && \
|
|
rm -rf /tmp/node_modules && \
|
|
mkdir /app && \
|
|
cd /app && \
|
|
yarn config set network-timeout 600000 -g && \
|
|
yarn create nocobase-app my-nocobase-app -a -e APP_ENV=production -e APPEND_PRESET_LOCAL_PLUGINS=$APPEND_PRESET_LOCAL_PLUGINS && \
|
|
cd /app/my-nocobase-app && \
|
|
yarn install --production && \
|
|
yarn add newrelic --production -W && \
|
|
cd /app/my-nocobase-app && \
|
|
$BEFORE_PACK_NOCOBASE && \
|
|
cd /app && \
|
|
cp -r /tmp/docs/dist /app/my-nocobase-app/docs && \
|
|
rm -rf my-nocobase-app/packages/app/client/src/.umi && \
|
|
rm -rf nocobase.tar.gz && \
|
|
tar -zcf ./nocobase.tar.gz -C /app/my-nocobase-app .
|
|
|
|
FROM node:20-bookworm-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends wget gnupg ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN echo "deb [signed-by=/usr/share/keyrings/pgdg.asc] http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
|
RUN wget --quiet -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
nginx \
|
|
libaio1 \
|
|
postgresql-client-16 \
|
|
postgresql-client-17 \
|
|
libfreetype6 \
|
|
fontconfig \
|
|
libgssapi-krb5-2 \
|
|
fonts-liberation \
|
|
fonts-noto-cjk \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN rm -rf /etc/nginx/sites-enabled/default
|
|
COPY ./docker/nocobase/nocobase-docs.conf /etc/nginx/sites-enabled/nocobase-docs.conf
|
|
COPY --from=builder /app/nocobase.tar.gz /app/nocobase.tar.gz
|
|
|
|
WORKDIR /app/nocobase
|
|
|
|
RUN mkdir -p /app/nocobase/storage/uploads/ && echo "$COMMIT_HASH" >> /app/nocobase/storage/uploads/COMMIT_HASH
|
|
|
|
COPY ./docker/nocobase/docker-entrypoint.sh /app/
|
|
|
|
CMD ["/app/docker-entrypoint.sh"] |