[PYTHON] [Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js

Einführung

Dies ist ein Memo beim Erstellen einer Entwicklungsumgebung für eine Webanwendung (Django im Backend und Nuxt.js im Frontend), die aus zwei Docker-Containern mit Docker-Compose besteht.

Umwelt zur Hand

Verzeichnisaufbau

home
|- backend
| |- code (Enthält den Quellcode für das Django-Projekt)
| |- Dockerfile
| |- requirements.txt
|- frontend
| |- src (Enthält den Quellcode für das Nuxt-Projekt)
| |- Dockerfile
|- .gitignore
|- docker-compose.yml
|- README.md

Richten Sie einen Docker-Container ein

Dieses Mal möchte ich nuxt für das Frontend und django für das Backend verwenden, zwei Dockerfiles vorbereiten und Docker-Compose verwenden, um jeden Container einzurichten.

Beginnen wir mit der Docker-Datei.

Dockerfile

Backend Dockerfile

Ich habe aus dem Python-Image ein Verzeichnis für Django erstellt und das in der Datei require.txt beschriebene Paket installiert. Dieses Mal werde ich nur Django setzen.

backend/Dockerfile


FROM python:3.7
ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code

ADD requirements.txt /code/
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt

requirements.txt


Django==3.0

Front-End-Docker-Datei

Aus dem Knotenbild die Nuxt-App Diesmal habe ich npm anstelle von Garn verwendet.

frontend/Dockerfile


FROM node:12.13-alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

RUN apk update && \
    apk upgrade && \
    apk add git
RUN npm install -g npm && \
    npm install -g core-js@latest && \
    npm install -g @vue/cli && \
    npm install -g @vue/cli-init && \
    npm install -g nuxt create-nuxt-app

ENV LANG C.UTF-8
ENV TZ Asia/Tokyo
ENV HOST 0.0.0.0
EXPOSE 3000

docker-compose.yml Synchronisieren Sie das Volumen jedes Containers mit der Hostseite.

docker-compose.yml


version: '3'

services:
  backend:
    container_name: backend
    build: ./backend
    tty: true
    ports:
      - '8000:8000'
    volumes:
      - ./backend/code:/code
    # command: python djangoproject/manage.py runserver 0.0.0.0:8000

  frontend:
    container_name: frontend
    build: ./frontend
    tty: true
    ports:
      - '3000:3000'
    volumes:
      - ./frontend/src:/usr/src/app
    # command: [sh, -c, "cd nuxtproject/ && npm run dev"]

Erstellen Sie ein Docker-Image und starten Sie den Container

Erstellen Sie das Docker-Image der obigen Docker-Datei.

$ docker-compose build

Wenn der Build erfolgreich ist, starten Sie den Container.

$ docker-compose up -d

Stellen Sie sicher, dass die beiden Container ausgeführt werden.

$ docker-compose ps

Erstellen eines Django & Nuxt-Projekts

Gehen Sie in den Container und erstellen Sie ein Projekt.

Erstellen eines Django-Projekts

sh


$ docker exec -it backend bash

Erstellen Sie im Container ein Projekt mit Startprojekt. Der Projektname lautet "Django-Projekt".

bash


$ django-admin startproject djangoproject

Da es sich um eine Entwicklungsumgebung handelt, fügen Sie ALLOWED_HOSTS in settings.py localhost hinzu.

settings.py


ALLOWED_HOSTS = ['localhost']

Erstellen eines Nuxt-Projekts

sh


$ docker exec -it frontend sh

Der Projektname lautet "nuxtproject".

sh


$ npx create-nuxt-app nuxtproject

Ihnen werden verschiedene Fragen gestellt, also lassen Sie uns antworten.

Bestätigung

Schließen Sie den Container nach dem Erstellen des Projekts einmal.

$ docker-compose stop

Kommentieren Sie dann den Befehl in docker-compose.yml aus und starten Sie den Container erneut.

docker-compose.yml


command: python djangoproject/manage.py runserver 0.0.0.0:8000
command: [sh, -c, "cd nuxtproject/ && npm run dev"]

sh


$ docker-compose up -d

Wenn Sie den Bildschirm sehen, auf dem die Rakete localhost: 8000Django gestartet wird, und den Nuxt-Bildschirm bei localhost: 3000 im Browser, ist dies erfolgreich.

Wenn Sie Lust dazu haben, werde ich es auf Github veröffentlichen.

Recommended Posts

[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Ich habe eine Entwicklungsumgebung für Django 3.0 mit Docker, Docker-Compose und Poetry erstellt
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Erstellen Sie eine lokale Entwicklungsumgebung mit WSL + Docker Desktop für Windows + Docker-Lambda + Python
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
[Memo] Django-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Erstellen Sie eine mruby-Entwicklungsumgebung für ESP32 (Linux Edition)
Django Entwicklungsumgebung Bau Memo
Erstellen Sie eine lokale Entwicklungsumgebung für Laravel6.X auf Ihrem Mac
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
Ein Memo zum Erstellen einer Django (Python) -Anwendung mit Docker
Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung
Erstellen Sie mit Docker eine Go-Umgebung
Erstellen Sie eine Deb-Datei mit Docker
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
Erstellen Sie eine MySQL + Python-Umgebung mit Docker
Stellen Sie die Django-Anwendung mit Docker bereit
[Für Anfänger] Django -Entwicklungsumgebung Bau-
Erstellen Sie mit VSCode x Remote Development x Pipenv eine komfortable Entwicklungsumgebung
Erstellen Sie eine Webanwendung mit Django
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Erstellen Sie mit VSCode & Docker Desktop eine einfache Python-Entwicklungsumgebung
[Django] Verwenden Sie VS Code + Remote-Container, um schnell eine Entwicklungsumgebung für Django-Container (Docker) zu erstellen.
Erstellen Sie mit Docker kostengünstig eine Flask-Entwicklungsumgebung
Erstellen Sie die Entwicklungsumgebung von Django mit Docker neu! !! !! !!
Erstellen Sie mit dem Serverless Framework eine lokale Entwicklungsumgebung für Lambda + Python
Erstellen Sie mit Docker eine Jupyter Lab (Python) -Umgebung
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Holen Sie sich mit Docker eine lokale Umgebung für DynamoDB
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Ein Memo mit RADEX-Umgebungskonstruktion
Erstellen Sie mit Neovim eine moderne Python-Umgebung
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
Erstellen Sie mit Docker eine Umgebung aus NGINX + NGINX Unit + MySQL
Lernverlauf zur Teilnahme an der Entwicklung von Teamanwendungen mit Python ~ Build Docker / Django / Nginx / MariaDB-Umgebung ~
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Einfache Konstruktion]