在docker中运行时出现Django分段错误
在docker中运行应用程序时出现分段错误在docker中运行时出现Django分段错误,django,docker,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' # <_froz
/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
/path/condapy/envs/env_name/bin/python-vv manage.py runserver
#代码对象来自
“/path/condapy/envs/env_name/lib/python3.6/site packages/django/core/_-pycache__/wsgi.cpython-36.pyc”
导入'django.core.wsgi'#
导入'django.core.servers.basehttp'#
导入'django.core.management.commands.runserver'#
导入'django.contrib.staticfiles.management.commands.runserver'#
PyThreadState\u Clear:警告:线程仍有一个帧
在本地模式下运行
正在执行系统检查。。。
分段故障
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"]
来自centos的最新版本
ENV JAVA_VERSON=1.8.0\
JAVA_HOME=/usr/lib/jvm/JAVA\
码路=
运行yum install-y epel release cmake wget git python setuptools zlib devel openssl devel python devel gcc-c++snapy devel gcc curl bzip2 java-$java_VERSON-openjdk java-$java_VERSON-openjdk-devel&&\
yum安装-y nginx&&\
轻松安装管理器和\
百胜清洁所有&&\
rm-rf/etc/localtime&&\
ln-s/usr/share/zoneinfo/Asia/Kolkata/etc/localtime&&\
mkdir-p/log
运行mkdir-p/path/condapy&&\
curl-sSLhttps://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安装-y python=3&&\
/路径/condapy/bin/conda更新conda&&\
/path/condapy/bin/conda clean--all--yes
暴露80
WORKDIR/app_路径
参数aws\u访问\u密钥\u id
参数aws\u密码\u访问\u密钥
精氨酸环境
复制./conda_environment.yml/app_path/conda_environment.yml
运行/path/condapy/bin/conda config——添加通道conda forge&&\
/path/condapy/bin/conda env create-f=/app_path/conda_environment.yml-n chatty&&\
rm-rf/opt/conda/pkgs/*
复制。/$codepath
CMD[“/usr/bin/supervisord”,“-n”]
数据库配置看起来不错,我们已经分配了足够的内存。有什么建议吗?在构建docker映像时安装python。请尝试使用预先安装的python从centos映像构建映像,或从多个基本映像构建映像(docker自17.05起就支持此功能) 您的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=<>
......
#使用预安装的python包含基本映像
######
来自centos/python-35-centos7
pip安装。。。
######
ENV JAVA_VERSON=1.8.0\
JAVA_HOME=/usr/lib/jvm/JAVA\
码路=
......
您可以发布dockerfile吗?不要将您的映像建立在Alpine Linux上。@BurhanKhalid its基于centos:Latest使用您的dockerfile更新问题,如@deosha所述。@deosha done。这是dockerfile的精简版,但应该足够好了。这看起来很有趣。我会为django应用程序和您的核心JAVA应用程序开发单独的docker映像。您可以通过RESTAPI(例如)将它们连接在一起,并通过docker Composet进行部署。问题是因为库使用不同版本的gcc编译器。谢谢你的帮助。