server 下的 Dockerfile 這麼寫
FROM python:3.8 LABEL name="server-django" auth="your name" RUN mkdir -p /app/server WORKDIR /app/server COPY . /app/server RUN apt-get update && apt-get install -y libgl1 RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt RUN echo "server-django build finished ..."
然後 Project 下的 docker-compose.yml 這麼寫
version: '3.3' services: ess-client: build: ./client command: node ./server.js ports: - "5173:5173" restart: always volumes: - ./client:/app/client container_name: ess_client_vue ess-server: build: ./server command: python manage.py runserver 0.0.0.0:8088 volumes: - ./server:/app/server ports: - "8088:8088" restart: always container_name: ess_server_django depends_on: - ess-db ess-db: image: mysql:latest container_name: ess_db_mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=myess ports: - "3307:3306" volumes: - ./mysql/data:/var/lib/mysql - ./mysql/conf:/etc/mysql/conf.d restart: always
完成最後的配置修改就可以開始部署啦
- 在 vue 專案中 要修改 axios 請求後端的 api url地址
- 修改 server 下 mysql 配置
- mysql_host 為本機真實ip
- mysql 其他配置為 docker-compose.yml 中的配置
- 進入到 vue專案中 先build 一下,生成 dist 檔案
- 在父級目錄下,即 Project 目錄下 執行 docker-compose up -d,等待流程結束
- 進入到 server 的 容器中,進行資料庫遷移等操作
- python manage.py makemigrations
- python manage.py migrate
- python manage.py createsuperuser
- 然後 就可以透過 IP:5173 訪問你部署好的專案啦