Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Python 3.8-alpine docker编写失败_Django_Docker_Python 3.8 - Fatal编程技术网

Django Python 3.8-alpine docker编写失败

Django Python 3.8-alpine docker编写失败,django,docker,python-3.8,Django,Docker,Python 3.8,我一直在运行一个没有docker的应用程序,并且刚刚添加了Dockerfile和docker compose 我遇到的问题是,成功构建应用程序后,runserver在运行该应用程序或migrate时会产生以下错误 ➜ app git:(master) sudo docker-compose run app sh -c "python manage.py runserver" Error loading shared library libpython3.8.so.1.0: No such fi

我一直在运行一个没有docker的应用程序,并且刚刚添加了
Dockerfile
docker compose

我遇到的问题是,成功构建应用程序后,
runserver
在运行该应用程序或
migrate
时会产生以下错误

➜  app git:(master) sudo docker-compose run app sh -c "python manage.py runserver"
Error loading shared library libpython3.8.so.1.0: No such file or directory (needed by /usr/local/bin/python)
Error relocating /usr/local/bin/python: Py_BytesMain: symbol not found
failed to resize tty, using default size
                                        %                                                                                                                                                                                                                                                                                       
➜  app git:(master) sudo docker-compose run app sh -c "python manage.py migrate"  
Error loading shared library libpython3.8.so.1.0: No such file or directory (needed by /usr/local/bin/python)
Error relocating /usr/local/bin/python: Py_BytesMain: symbol not found
Dockerfile

FROM python:3.8-alpine
MAINTAINER realize-sec

ENV PYTHONUNBUFFERED 1

COPY requirements.txt /requirements.txt
RUN pip install -r requirements.txt

RUN mkdir /app
WORKDIR /app
COPY ./app /app

RUN adduser -D user
USER user
docker compose.yml

version: "3"

services:
  app:
    build:
      context: ""
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: >
      sh -c "python manage.py runserver 0.0.0.0:8000"
我做错了什么导致了这一切


当我使用
python3 manage.py runserver在没有docker的情况下运行时,它工作得很好。

因为我还没有测试构建,我不知道这些东西是否能帮助您最终构建容器,但是下面是一些观察结果,希望能让您走上正确的道路

  • 您的上下文是一个空字符串,通常是一个点(.)
  • 通常使用以下命令完成Dockerfile:
CMD[“python3”、“manage.py”、“runserver”、“0.0.0.0:8000”]

因此,您可以将其从撰写文件中删除

除此之外,更一般地说,尽管Alpine图像很小,但由于需要添加/删除额外的依赖项和包,它们很容易损坏。总体而言,您最好选择修身版。最初的构建将花费更长的时间,但会更易于管理


此外,如果您在计算机上运行的是现代版本的Docker,则可以根据您的Docker版本,将compose文件的语法版本移动到3.7或3.8版本。

谢谢,Wayne。什么图像是更好的选择?您可以为基础图像选择
slim
buster