update build config

This commit is contained in:
椰子 2022-03-16 20:00:31 +08:00
parent 5cb79e2866
commit cea3084628
5 changed files with 62 additions and 92 deletions

View File

@ -1,49 +1,33 @@
FROM node:12-alpine as builder FROM node:12-alpine as builder
ENV YAPI_VERSION="1.9.2" ENV YAPI_VERSION="1.9.3"
ENV YAPI_HOME="/yapi" ENV YAPI_HOME="/yapi"
ENV GIT_URL="https://github.com/YMFE/yapi.git" ENV GIT_URL="https://github.com/YMFE/yapi.git"
ENV GIT_MIRROR_URL="https://gitee.com/mirrors/YApi.git"
WORKDIR ${YAPI_HOME} WORKDIR ${YAPI_HOME}
RUN apk add --no-cache wget python3 make git curl
COPY config.json .
COPY start.sh .
RUN apk add --no-cache wget python make git curl
RUN chmod +x start.sh
RUN ret=`curl -s https://api.ip.sb/geoip | grep China | wc -l` && \
if [ $ret -ne 0 ]; then \
GIT_URL=${GIT_MIRROR_URL} && npm config set registry https://registry.npm.taobao.org; \
fi;
RUN git clone --depth 1 --branch v${YAPI_VERSION} --single-branch ${GIT_URL} vendors RUN git clone --depth 1 --branch v${YAPI_VERSION} --single-branch ${GIT_URL} vendors
WORKDIR ${YAPI_HOME}/vendors WORKDIR ${YAPI_HOME}/vendors
#RUN npm install -g node-gyp yapi-cli #RUN npm install -g node-gyp yapi-cli
RUN npm install --production RUN npm install --production -registry https://registry.npm.taobao.org
WORKDIR ${YAPI_HOME}
FROM node:12-alpine FROM node:12-alpine
ENV TZ="Asia/Shanghai" ENV TZ="Asia/Shanghai"
ENV YAPI_VERSION="1.9.2" ENV YAPI_VERSION="1.9.3"
ENV YAPI_HOME="/yapi" ENV YAPI_HOME="/yapi"
ENV YAPI_PORT="3000"
ENV ADMIN_EMAIL="master@simaek.com" ENV ADMIN_EMAIL="master@simaek.com"
ENV DB_HOST="mongo" ENV DB_HOST="127.0.0.1"
ENV DB_NAME="yapi" ENV DB_NAME="yapi"
ENV DB_PORT="27017" ENV DB_PORT="27017"
ENV MAIL_ENABLE="false" ENV MAIL_ENABLE="false"
ENV MAIL_HOST="127.0.0.1" ENV MAIL_HOST=""
ENV MAIL_PORT="465" ENV MAIL_PORT=""
ENV MAIL_FROM="master@simaek.com" ENV MAIL_FROM=""
ENV MAIL_USER="user" ENV MAIL_USER=""
ENV MAIL_PWD="password" ENV MAIL_PWD=""
WORKDIR ${YAPI_HOME} WORKDIR ${YAPI_HOME}
COPY --from=builder /yapi . COPY --from=builder /yapi .
COPY entrypoint.sh /
EXPOSE ${YAPI_PORT} RUN chmod +x /entrypoint.sh
#ENTRYPOINT ["node", "server/app.js"] EXPOSE 3000
ENTRYPOINT ["sh", "start.sh"] ENTRYPOINT ["/entrypoint.sh"]

View File

@ -1,19 +0,0 @@
{
"port": "YAPI_PORT",
"adminAccount": "ADMIN_EMAIL",
"db": {
"servername": "DB_HOST",
"DATABASE": "DB_NAME",
"port": "DB_PORT"
},
"mail": {
"enable": "MAIL_ENABLE",
"host": "MAIL_HOST",
"port": "MAIL_PORT",
"from": "MAIL_FROM",
"auth": {
"user": "MAIL_USER",
"pass": "MAIL_PWD"
}
}
}

View File

@ -4,29 +4,21 @@ services:
mongo: mongo:
image: mongo:2.8.0 image: mongo:2.8.0
container_name: mongo container_name: mongo
# restart: always restart: always
# volumes: # volumes:
# - ~/data/yapi/mongodb:/data/db #db dir # - ~/data/yapi/mongodb:/data/db #db dir
networks: networks:
- backend - backend
# yapi server # yapi server
yapi: yapi:
image: simaek/yapi:latest image: yapi:latest
# build: ./ build: ./
container_name: yapi container_name: yapi
environment: environment:
- YAPI_PORT=3000
- ADMIN_EMAIL=master@simaek.com - ADMIN_EMAIL=master@simaek.com
- DB_HOST=mongo - DB_HOST=mongo
- DB_NAME=yapi - DB_NAME=yapi
- DB_PORT=27017 restart: always
- MAIL_ENABLE=false
- MAIL_HOST=127.0.0.1
- MAIL_PORT=465
- MAIL_FROM=master@simaek.com
- MAIL_USER=master
- MAIL_PWD=master
# restart: always
ports: ports:
- 3000:3000 - 3000:3000
# volumes: # volumes:

43
entrypoint.sh Normal file
View File

@ -0,0 +1,43 @@
#!/usr/bin/env sh
cd ${YAPI_HOME}
# configure with environment variables
cat << EOF > config.json
{
"port": 3000,
"adminAccount": "${ADMIN_EMAIL}",
"db": {
"servername": "${DB_HOST}",
"DATABASE": "${DB_NAME}",
"port": ${DB_PORT}
},
"mail": {
"enable": "${MAIL_ENABLE}",
"host": "${MAIL_HOST}",
"port": "${MAIL_PORT}",
"from": "${MAIL_FROM}",
"auth": {
"user": "${MAIL_USER}",
"pass": "${MAIL_PASS}"
}
}
}
EOF
cd ${YAPI_HOME}/vendors
if [ ! -e "init.lock" ]
then
# yapi install -v ${YAPI_VERSION}
npm run install-server
touch init.lock
fi
cd ${YAPI_HOME}/vendors
if [ $1 ]
then
node $i
else
node server/app.js
fi

View File

@ -1,30 +0,0 @@
#!/usr/bin/env sh
cd ${YAPI_HOME}/vendors
if [ ! -e "init.lock" ]
then
sed -i "s/YAPI_PORT/${YAPI_PORT}/g" config.json
sed -i "s/ADMIN_EMAIL/${ADMIN_EMAIL}/g" config.json
sed -i "s/DB_HOST/${DB_HOST}/g" config.json
sed -i "s/DB_NAME/${DB_NAME}/g" config.json
sed -i "s/DB_PORT/${DB_PORT}/g" config.json
sed -i "s/\"MAIL_ENABLE\"/${MAIL_ENABLE}/g" config.json
sed -i "s/MAIL_HOST/${MAIL_HOST}/g" config.json
sed -i "s/MAIL_PORT/${MAIL_PORT}/g" config.json
sed -i "s/MAIL_FROM/${MAIL_FROM}/g" config.json
sed -i "s/MAIL_USER/${MAIL_USER}/g" config.json
sed -i "s/MAIL_PWD/${MAIL_PWD}/g" config.json
# yapi install -v ${YAPI_VERSION}
npm run install-server
touch init.lock
fi
cd ${YAPI_HOME}/vendors
if [ $1 ]
then
node $i
else
node server/app.js
fi