我正在尝试使用django-cookiectter启动一个新项目,它可以正常运行,但是当我尝试docker-compose -f local.yml up
时,它会在django的服务上给我这个错误:
django_1 | * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
django_1 | * Restarting with stat
': No such file or directorycute 'python
dj_ekiosk_django_1 exited with code 127
Gracefully stopping... (press Ctrl+C again to force)
Stopping dj_ekiosk_postgres_1 ... done
这是我要运行的local.yml文件(cookiecutter项目中没有任何更改)
local.yml
version: '3'
volumes:
local_postgres_data: {}
local_postgres_data_backups: {}
services:
django:
build:
context: .
dockerfile: ./compose/local/django/Dockerfile
image: dj_ekiosk_local_django
depends_on:
- postgres
volumes:
- .:/app
env_file:
- ./.envs/.local/.django
- ./.envs/.local/.postgres
ports:
- "8000:8000"
command: /start
postgres:
build:
context: .
dockerfile: ./compose/production/postgres/Dockerfile
image: dj_ekiosk_production_postgres
volumes:
- local_postgres_data:/var/lib/postgresql/data
- local_postgres_data_backups:/backups
env_file:
- ./.envs/.local/.postgres
答案 0 :(得分:1)
您的manage.py中可能有\r\n
(CRLF)行结尾,这是Windows的默认值,但在Linux下会导致错误。 manage.py
中的第一行应该是这样的:
#!/usr/bin/env python/r/n
当您使用文本编辑器/ IDE打开源代码时,您可能看不到/r/n
部分,但是它在那里。您应该做的是将CRLF行尾转换为LF行尾(适用于Linux)。有一些工具可以做到这一点,并且由于您是在Windows上进行开发的,因此建议您将IDE配置为使用LF作为行尾。 (使用PyCharm,Visual Studio Code等配置它们确实很容易。)