[CSAPI] Django 개발환경 셋팅

[CSAPI] Django 개발환경 셋팅

local 개발환경

개발 부터 aws에 db서버를 따로 두고 개발하기에는 비용적인 부분이 너무 감당이 안될 것 같아서 local에 두 개의 centos 서버를 두고 개발을 시작.

- Vagrantfile

Virtualbox에 centos 두 개를 띄어서 시작.

Vagrant.configure("2") do |config| #csapi config.vm.define "csapi" do |cfg| cfg.vm.box = "centos/8" cfg.vm.provider "virtualbox" do |vb| vb.name = "csapi" end cfg.vm.host_name = "csapi" cfg.vm.network "private_network", ip: "192.168.252.100", :adapter => 2 cfg.vm.network "forwarded_port", guest: 22, host: 60001, auto_correct: true, id: "ssh" # install docker cfg.vm.provision "shell", inline: "yum install -y yum-utils && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo" cfg.vm.provision "shell", inline: "yum install -y docker-ce-20.10.5 docker-ce-cli-20.10.5 containerd.io" cfg.vm.provision "shell", inline: "usermod -aG docker vagrant" cfg.vm.provision "shell", inline: "systemctl start docker" cfg.vm.provision "shell", inline: "systemctl enable docker" # install git cfg.vm.provision "shell", inline: "yum install -y git" # install python cfg.vm.provision "shell", inline: "yum install -y epel-release.noarch" cfg.vm.provision "shell", inline: "yum install -y python39" # install mysql lib cfg.vm.provision "shell", inline: "yum install -y python3-devel" cfg.vm.provision "shell", inline: "yum install python-devel mysql-devel" end #csapi config.vm.define "database" do |cfg| cfg.vm.box = "centos/8" cfg.vm.provider "virtualbox" do |vb| vb.name = "database" end cfg.vm.host_name = "database" cfg.vm.network "private_network", ip: "192.168.252.101", :adapter => 2 cfg.vm.network "forwarded_port", guest: 22, host: 60001, auto_correct: true, id: "ssh" # install docker cfg.vm.provision "shell", inline: "yum install -y yum-utils && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo" cfg.vm.provision "shell", inline: "yum install -y docker-ce-20.10.5 docker-ce-cli-20.10.5 containerd.io" cfg.vm.provision "shell", inline: "usermod -aG docker vagrant" cfg.vm.provision "shell", inline: "systemctl start docker" cfg.vm.provision "shell", inline: "systemctl enable docker" end end

- mariadb 실행

mariadb 컨테이너는 ip가 192.168.252.101 인 가상머신에서 실행

docker run -d -p 3306:3306 --name mariadb -e MARIADB_ROOT_PASSWORD=root -e MARIADB_USER=user -e MARIADB_PASSWORD=user -e MARIADB_DATABASE=csapi mariadb:latest

- django db 설정

기본 설정은 아래와 같다. sqlite3는 파일 기반의 매우 간단한 db라고 한다

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }

mariadb를 사용하도록 설정해준다. 원래 root를 사용하면 안되지만, 우선 그건 고려하지 않았다. user로 했을 경우, db 사용 권한이 있는지 확인 필요

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'csapi', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '192.168.252.101', 'PORT': '3306' } }

from http://not-to-be-reset.tistory.com/515 by ccl(A) rewrite - 2021-10-03 19:01:18