在 docker 中运行时出现 Django 段错误

标签 django docker

在 docker 中运行应用程序时出现段错误

/path/condapy/envs/env_name/bin/python -vvvvvv manage.py runserver


# code object from 
'/path/condapy/envs/env_name/lib/python3.6/site-packages/django/core/__pycache__/wsgi.cpython-36.pyc'
import 'django.core.wsgi' # <_frozen_importlib_external.SourceFileLoader object at 0x7f1919dd5a90>
import 'django.core.servers.basehttp' # <_frozen_importlib_external.SourceFileLoader object at 0x7f1919dca240>
import 'django.core.management.commands.runserver' # <_frozen_importlib_external.SourceFileLoader object at 0x7f1919dbf630>
import 'django.contrib.staticfiles.management.commands.runserver' # <_frozen_importlib_external.SourceFileLoader object at 0x7f1919db34a8>
PyThreadState_Clear: warning: thread still has a frame
Running in local mode
Performing system checks...

Segmentation fault

Dockerfile
FROM centos:latest

ENV JAVA_VERSON=1.8.0 \
    JAVA_HOME=/usr/lib/jvm/java \
    codepath=<>

RUN yum install -y epel-release cmake wget git python-setuptools zlib-devel openssl-devel python-devel gcc-c++ snappy-devel gcc curl bzip2 java-$JAVA_VERSON-openjdk java-$JAVA_VERSON-openjdk-devel && \
    yum install -y nginx && \
    easy_install supervisor && \
    yum clean all && \
    rm -rf /etc/localtime && \
    ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime && \
    mkdir -p  /logs 

RUN mkdir -p /path/condapy && \
    curl -sSL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o /srv/miniconda.sh && \
    bash /srv/miniconda.sh -bfp /path/condapy && \
    /path/condapy/bin/conda install -y python=3 && \
    /path/condapy/bin/conda update conda && \
    /path/condapy/bin/conda clean --all --yes

EXPOSE 80

WORKDIR /app_path

ARG aws_access_key_id
ARG aws_secret_access_key
ARG env

COPY ./conda_environment.yml /app_path/conda_environment.yml

RUN /path/condapy/bin/conda config --add channels conda-forge && \
    /path/condapy/bin/conda env create -f=/app_path/conda_environment.yml -n chatty && \
    rm -rf /opt/conda/pkgs/*

COPY ./ $codepath

CMD ["/usr/bin/supervisord", "-n"]

数据库配置看起来不错,我们已经分配了足够的内存。有什么建议么?

最佳答案

在构建 docker 镜像时安装 python。尝试使用预安装的 python 从 centos 镜像构建镜像或从多个基础镜像构建镜像(docker 自 17.05 起支持 https://docs.docker.com/develop/develop-images/multistage-build/#before-multi-stage-builds )

你的 Dockerfile 会变成这样:

# Include Base image with preinstalled python 
######
FROM centos/python-35-centos7
pip install ...
######

ENV JAVA_VERSON=1.8.0 \
JAVA_HOME=/usr/lib/jvm/java \
codepath=<>
......

关于在 docker 中运行时出现 Django 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51511629/

相关文章:

python - 将内容保存到 Django 模型失败 -

postgres : enforced by ORM or DB? 上的 Django unique_together

docker - 版本 `GLIBC_2.29' 未找到

java - Hashicorp Nomad 上的 Quarkus

authentication - 鉴于下面描述的错误,人们如何在 Ubuntu/Docker 上的 ASP.NET Core Web API 中进行身份验证?

python - 在 google appengine 上使用 django 使用数据初始化表单

java - 单点登录 - Django 到 java servlet

mongodb - Docker mongo image 始终将数据保存在/data/db 目录中

完全支持 CSS3 和 HTML5 的 Python HTML 到 PDF

php - Xdebug 在访问类静态属性时中断