[#2] master模块使用supervisor守护;增加dns-monitor功能;内网apt源
This commit is contained in:
@@ -4,29 +4,60 @@ SHELL ["/bin/bash", "-c"]
|
||||
|
||||
ARG PIP_INDEX_URL=
|
||||
ARG USE_OFFLINE=0
|
||||
ARG USE_INTRANET=false
|
||||
|
||||
ENV PIP_NO_CACHE_DIR=1 \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
PYTHONPATH=/app
|
||||
|
||||
USER root
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt ./
|
||||
COPY offline_wheels/ /opt/offline_wheels/
|
||||
COPY ./src/master/requirements.txt ./requirements.txt
|
||||
COPY ./src/master/offline_wheels/ /opt/offline_wheels/
|
||||
|
||||
RUN set -euxo pipefail \
|
||||
&& if [[ "$USE_OFFLINE" == "1" ]]; then \
|
||||
python -m pip install --no-index --find-links /opt/offline_wheels pip && \
|
||||
python -m pip install --no-index --find-links /opt/offline_wheels -r requirements.txt; \
|
||||
else \
|
||||
python -m pip install --upgrade pip \
|
||||
&& if [[ -n "$PIP_INDEX_URL" ]]; then \
|
||||
python -m pip install --upgrade pip && \
|
||||
if [[ -n "$PIP_INDEX_URL" ]]; then \
|
||||
PIP_INDEX_URL="$PIP_INDEX_URL" python -m pip install -r requirements.txt; \
|
||||
else \
|
||||
else \
|
||||
python -m pip install -r requirements.txt; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
COPY app ./app
|
||||
# 配置内网 apt 源并安装常用工具
|
||||
RUN if [[ "$USE_INTRANET" == "true" ]]; then \
|
||||
echo "Configuring intranet apt sources" && \
|
||||
if [[ -f /etc/apt/sources.list ]]; then cp /etc/apt/sources.list /etc/apt/sources.list.bak; fi && \
|
||||
mkdir -p /etc/apt && \
|
||||
echo "deb [trusted=yes] http://10.68.64.1/ubuntu2204/ jammy main" > /etc/apt/sources.list && \
|
||||
echo 'Acquire::https::Verify-Peer "false";' > /etc/apt/apt.conf.d/99disable-ssl-check && \
|
||||
echo 'Acquire::https::Verify-Host "false";' >> /etc/apt/apt.conf.d/99disable-ssl-check; \
|
||||
fi && \
|
||||
apt-get update && \
|
||||
apt-get install -y supervisor net-tools inetutils-ping vim && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 运行期切换到运行所需的 apt 源
|
||||
RUN if [[ "$USE_INTRANET" == "true" ]]; then \
|
||||
echo "deb [trusted=yes] https://10.92.132.52/mirrors/ubuntu2204/ jammy main" > /etc/apt/sources.list; \
|
||||
fi
|
||||
|
||||
RUN mkdir -p /var/log/supervisor
|
||||
|
||||
COPY ./src/master/build/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
COPY ./src/master/build/start-master.sh /usr/local/bin/start-master.sh
|
||||
COPY ./src/master/build/dns-monitor.sh /usr/local/bin/dns-monitor.sh
|
||||
RUN chmod +x /usr/local/bin/start-master.sh /usr/local/bin/dns-monitor.sh
|
||||
|
||||
COPY ./src/master/app ./app
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["gunicorn", "--bind", "0.0.0.0:3000", "app:create_app()"]
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||
|
||||
Reference in New Issue
Block a user