[英]Django 1.8 python: can't open file 'manage.py': [Errno 2] No such file or directory
[英]How to fix python: can't open file '//manage.py': [Errno 2] No such file or directory in Django
如何修復忽略文件的剩余部分 python:無法打開文件“ //manage.py
\[Errno 2\]
使用命令 docker-compose up 時沒有此類文件或目錄
這是我所有的代碼,我還附上了一個圖像文件。
dockerfile 個文件
FROM python:3.10
ENV PYTHONUNBUFFERED 1
COPY requirements.txt .
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
docker-compose.yml
:
version: '3.7'
services:
db:
image: mariadb:10
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD = mariadb
- MYSQL_DATABASE = mariadb
- MYSQL_USER = mariadb
- MYSQL_PASSWORD = mariadb
- MARIADB_ROOT_PASSWORD=mysecretpassword
ports:
- 3306:3306
volumes:
- "mysqldata:/var/lib/mysql"
web:
build:
context: .
dockerfile: Dockerfile
restart: always
command: python manage.py runserver 0.0.0.0:8000
environment:
- DATABASE_URL=mariadb+mariadbconnector://user:mariadb@db:3306/mariadb
ports:
- "8000:8000"
depends_on:
- db
adminer:
image: adminer
restart: always
ports:
- 8080:8080
depends_on:
- db
volumes:
mysqldata:
setting.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mariadb',
'USER': 'mariadb',
'PASSWORD': 'mariadb',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
在您的 Dockerfile 中,您沒有COPY
任何應用程序代碼,只是復制了requirements.txt
文件。 典型的設置在安裝 package 依賴項后復制整個源代碼樹
# existing
COPY requirements.txt .
RUN pip install -r requirements.txt
# add missing
COPY ./ ./
如果你docker-compose run web ls
,你也應該能夠看到這個,用不同的命令啟動一個臨時容器; 您的源代碼不會在那里。
還有一些其他小錯誤或清理也可以改進此設置:
mysql
容器中, environment:
塊。 Compose 無法識別這一點,因此您設置例如 MYSQL_USER
(以空格結尾)到mariadb
(以空格開頭)。 刪除這些空格,所以MYSQL_USER=mariadb
。'host': 'db'
。WORKDIR /app
。CMD
重復為 Compose command:
。 我會刪除command:
行。build:
因為您有默認的 Dockerfile 名稱並且沒有其他選項; build: .
只有目錄名稱而不是映射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.