我正在创建并发送给客户端的docker映像在启动24-48小时后不知何故删除了其源代码。我们可以通过exec
到正在运行的容器上并环顾四周来看到这一点
该服务是一个简单的烧瓶应用程序。该服务不会因为应用程序没有遇到问题而停止,但它应该产生的静态文件会丢失(以及复制的所有其他文件),因此我们开始得到404。我想不出任何东西可以解释这一点(特别是考虑到这需要时间)
FROM python:3.8-slim-buster
ARG USERNAME=calibrator
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN apt-get update \
&& groupadd --gid $USER_GID $USERNAME \
&& useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& apt-get install -y sudo \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME\
&& chmod 0440 /etc/sudoers.d/$USERNAME \
# Install open-cv packaged
&& apt-get install -y libsm6 libxext6 libxrender-dev libgtk2.0-dev libgl1-mesa-glx \
#
## Git
&& sudo apt-get install -y git-lfs \
#
## Bespoke setup
&& apt-get -y install unixodbc-dev \
#
## PostgresSQL
&& apt-get -y install libpq-dev
ENV PATH="/home/${USERNAME}/.local/bin:${PATH}"
ARG git_user
ARG git_password
RUN pip install --upgrade pip
RUN python3 -m pip install --user git+https://${git_user}:${git_password}@bitbucket.org/****
WORKDIR /home/calibrator
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY app app
ENV FLASK_APP=app/app.py
EXPOSE 80
STOPSIGNAL SIGTERM
CMD ["uwsgi", "--http", ":80", "--module", "app.app", "--callable", "app", "--processes=1", "--master"]
version: "3.7"
services:
calibrator:
container_name: sed-calibrator-ui
image: sed-metadata-calibrator:2.0.3
restart: always
ports:
- "8081:80"
environment:
- STORE_ID=N0001
- DYNAMO_TABLE=****
- DYNAMO_REGION=****
- AWS_DEFAULT_REGION=****
- AWS_ACCESS_KEY_ID=****
- AWS_SECRET_ACCESS_KEY=****
应用程序读入单个配置文件,并在启动时连接到数据库,然后定义端点——所有端点都不会再次触及文件系统。源代码如何删除自身
创建一个新容器可以解决这个问题
如果您对检查客户环境有任何建议,我将不胜感激,因为我无法复制它
客户端版本
我可以通过更新内核来解决这个问题,它也可以使用较旧的内核(3.10)
作品:
不起作用:
我不知道原因是什么,我只知道在更新内核后问题就解决了。我希望这也是你的问题
相关问题 更多 >
编程相关推荐