![](/img/trans.png)
[英]zsh: command not found: django-admin when starting a django project
[英]when creating django project via docker container it says sh: django-admin: not found
I created a docker python image on top of alpine the problem is that when I want to start a django app it can not find django and it is right bcz when I type pip list, it does not have django and other packages.
ps:創建鏡像時顯示正在收集django等包
這是 requirements.txt 文件
Django>=3.2.4,<3.3
djangorestframework>=3.12.4,<3.13
這是我的 Dockerfile:
FROM python:3.9-alpine3.13
LABEL maintainer="siavash"
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /tmp/requirements.txt
COPY ./requirements.dev.txt /tmp/requirements.dev.txt
COPY ./app /app
WORKDIR /app
EXPOSE 8000
ARG DEV=false
RUN python -m venv /py && \
/py/bin/pip install --upgrade pip && \
/py/bin/pip install -r /tmp/requirements.txt && \
if [ $DEV = "true" ]; \
then /py/bin/pip install -r /tmp/requirements.dev.txt ; \
fi && \
rm -rf /tmp && \
adduser \
--disabled-password \
--no-create-home \
django-user
ENV PATH = "/py/bin:$PATH"
USER django-user
這是 docker-compose.yml
version: "3.9"
services:
app:
build:
context: .
args:
- DEV=true
ports:
- "8000:8000"
volumes:
- ./app:/app
command: >
sh -c "python manage.py runserver 0.0.0.0:8000"
這是我使用的命令:
docker-compose run --rm app sh -c "django-admin startproject app . "
順便說一句,圖像創建成功
嘗試pip3 install
而不是pip install
如果這不起作用,請嘗試在一個步驟中單獨安裝並檢查。
下面是通過 Docker 容器創建新 Django 項目的代碼
要求.txt
Django>=3.2.4,<3.3
Dockerfile
FROM python:3.9-alpine3.13
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt && \
rm /tmp/requirements.txt
WORKDIR /app
docker-compose.yml
version: "3.9"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
command: >
sh -c "python manage.py runserver 0.0.0.0:8000"
創建新項目的命令
docker-compose build
docker-compose run --rm app sh -c "django-admin startproject app ."
docker-compose up -d
要編輯由 docker 容器創建的文件,我們需要修復新文件的所有權。
sudo chown -R $USER:$USER app
所以我認為發生這種情況的原因是因為一個非常簡單的錯誤很難看到ENV PATH = "/py/bin:$PATH"
應該是ENV PATH="/py/bin:$PATH"
你可能會遇到一些 django-user 問題USER django-user
所以你可以使用我粘貼的這個。
其他一切看起來都是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.