Django docker image仅启动python shell

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django docker image仅启动python shell相关的知识,希望对你有一定的参考价值。

我有以下docker-compose文件

version: '3'

services:
  web:
    build: .
    command: bash -c "python manage.py collectstatic --no-input && gunicorn -w 2 --bind 0.0.0.0:8000 api.wsgi:application"
    volumes:
      - .:/code
      - static_volume:/code/api/static
    expose:
      - 8000
    environment:
      - DJANGO_SETTINGS_MODULE=api.settings.production
    depends_on: 
      - redis
  redis:
    image: "redis:alpine"
  celery:
    build: .
    command: celery -A api worker -l warning
    volumes:
      - .:/code
    environment:
      - DJANGO_SETTINGS_MODULE=api.settings.production
    depends_on:
      - redis
  nginx:
    build: ./nginx
    ports:
      - 80:80
    volumes:
      - static_volume:/code/api/static
    depends_on:
      - web

volumes:
  static_volume:

我使用以下命令来构建docker映像并将其推送到我们的gitlab docker注册表:

docker build -t foo/api-django .
docker push foo/api-django

这没有问题。但是,一旦我拉出图像并使用以下命令运行它]

docker run -p 8000:80 -i -t foo/api-django

它只显示图像的python shell:docker image just shows python shell

任何建议?当我只运行docker-compose时,它通常会启动nginx,gunicorn等。

我具有以下docker-compose文件版本:“ 3”服务:web:build:。命令:bash -c“ python manage.py collectstatic --no-input && gunicorn -w 2 --bind 0.0.0.0:8000 api ....

答案

这里您的命令将不起作用,因为您要执行的命令(python manage.py collectstatic --no-input && gunicorn -w 2 --bind 0.0.0.0:8000 api.wsgi:application)位于docker-compose文件中。

以上是关于Django docker image仅启动python shell的主要内容,如果未能解决你的问题,请参考以下文章

如何将docker image 打包

Django学习1---安装Django,创建启动项目

Django ImageField - 仅渲染元素

02-docker安装配置

docker 使用总结

docker 使用总结