Docker容器源文件消失

2024-10-05 17:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建并发送给客户端的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=****

应用程序读入单个配置文件,并在启动时连接到数据库,然后定义端点——所有端点都不会再次触及文件系统。源代码如何删除自身

创建一个新容器可以解决这个问题

如果您对检查客户环境有任何建议,我将不胜感激,因为我无法复制它

客户端版本

  • Docker版本-18.09.7
  • Docker Compose版本-1.24.0

Tags: installpiprundevgitapp应用程序uid
1条回答
网友
1楼 · 发布于 2024-10-05 17:38:55

我可以通过更新内核来解决这个问题,它也可以使用较旧的内核(3.10)

作品:

4.1.12-124.45.6.el7uek.x86_64

不起作用:

4.1.12-124.43.4.el7uek.x86_64

我不知道原因是什么,我只知道在更新内核后问题就解决了。我希望这也是你的问题

相关问题 更多 >