django后端→在8000
上运行vite前端→在3000上运行并连接到django 服务应使用Docker-Compose运行-build
即使Django工作,Vite也无法在容器中正常启动。
我的文件目录:
For_Testing_Purpose-1/
django_project
┣ __pycache__
┣ asgi.py
┣ settings.py
┣ urls.py
┣ wsgi.py
┗ __init__.py
homepage
┣ migrations
┣ __pycache__
┣ admin.py
┣ apps.py
┣ models.py
┣ tests.py
┣ urls.py
┣ views.py
┗ __init__.py
templates
┗ home.html
webapp
┣ dist
┃ ┣ .vite
┃ ┃ ┗ manifest.json
┃ ┣ assets
┃ ┃ ┗ tailwind-4t-_kGsy.css
┃ ┗ vite.svg
┣ node_modules
┣ public
┃ ┗ vite.svg
┣ src
┃ ┗ style.css
┣ .gitignore
┣ index.html
┣ package-lock.json
┣ package.json
┗ vite.config.ts
.dockerignore
db.sqlite3
docker-compose.yml
Dockerfile
manage.py
requirements.txt
# Pull base image
FROM python:3.13-slim-bullseye
# Set environment variables
ENV PIP_DISABLE_PIP_VERSION_CHECK 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
# WORKDIR /code/website_core
WORKDIR /code
# Install dependencies
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# Copy project
COPY . .
services:
web:
build: .
command: python /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
depends_on:
- db
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- "POSTGRES_HOST_AUTH_METHOD=trust"
volumes:
postgres_data:
运行Vite我去目录
cd webapp
然后
npm run dev
当然,我的方式有问题,但是我想弄清楚这一点,我正在挣扎!
我从一开始就尝试了什么:
verified Docker安装:RanDocker运行Hello-World,以检查Docker是否在工作。 创建和构建后端和前端码头图像单独的图像:
trimed运行容器分别:检查了docker-compose.yml和目录结构:
RANDOCKER-COMPOSE-建造并获得错误:未能解决:无法读取Dockerfile:Open Dockerfile:没有这样的文件或目录。 还看到了有关版本属性已过时的警告。
验证了Docker是否可以看到文件:
确保我在运行Docker-Compop-Build
之前处于正确的目录任期的Docker和Docker组成:
githubrepo
FROM python:3.13-slim-bullseye as backend
ENV PIP_DISABLE_PIP_VERSION_CHECK 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY ./requirements.txt .
RUN pip install -r requirements.txt
COPY . .
FROM node:15.12.0-buster AS frontend
WORKDIR /webapp/
RUN --mount=type=cache,target=/root/.npm,rw \
--mount=type=bind,source=webapp/package.json,target=package.json \
--mount=type=bind,source=webapp/package-lock.json,target=package-lock.json \
npm ci
COPY --link webapp/ .
RUN npm run dev
services:
backend:
build:
context: .
dockerfile: Dockerfile
target: backend
command: python /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
frontend:
build:
context: .
dockerfile: Dockerfile
target: frontend
command: npm run dev
volumes:
- webapp:/webapp
ports:
- "3000:3000"
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- "POSTGRES_HOST_AUTH_METHOD=trust"
volumes:
postgres_data: