Docker에서 Django/PostgreSQL 환경 구축
5490 단어 PostgreSQL도커장고
Quickstart: Compose and Django
mkdir proj01
cd proj01/
다음 세 가지 파일이 필요합니다.
Dockerfile
requirements.txt
docker-compose.yml
폴더 구조
$ tree proj01
proj01
├── docker-compose.yml
├── Dockerfile
└── requirements.txt
프로젝트 만들기
docker-compose run web django-admin startproject proj01 .
실행 후 폴더 구조
$ tree proj01
proj01
├── data
│ └── db [error opening dir]
├── docker-compose.yml
├── Dockerfile
├── manage.py
├── proj01
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── requirements.txt
이 시점에서 서버 시작
docker-compose up
웹 서버와 DB 서버가 실행 중인지 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
066256c49c1a proj01_web "python manage.py ru…" 12 minutes ago Up 12 minutes 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp proj01_web_1
078426ac5bea postgres "docker-entrypoint.s…" 13 minutes ago Up 13 minutes 5432/tcp proj01_db_1
브라우저에서 http://localhost:8000/ 방문
파일 속성 변경
sudo chown -R uchida:uchida .
웹 서버에 액세스
$ docker exec -it proj01_web_1 bash
root@066256c49c1a:/code#
DB 서버에 액세스
$ docker exec -it proj01_db_1 bash
root@078426ac5bea:/#
Django의 프로그램을 개조해 보겠습니다.
여기와 같은 변경을 합니다.
장고 에 Hello World
python manage.py migrate
python manage.py startapp home
폴더 구조
$ tree -L 1 proj01
proj01
├── data
├── db.sqlite3
├── docker-compose.yml
├── Dockerfile
├── home
├── manage.py
├── proj01
└── requirements.txt
다음을 만들거나 편집합니다.
home/views.py
home/urls.py
proj01/settings.py
proj01/urls.py
home/view.py
from django.http import HttpResponse
def index(request):
str_out = "<p>Good Afternoon</p>"
str_out += "<p>こんにちは</p>"
str_out += "<blockquote>"
str_out += "<p>Jun/25/2021</p>"
str_out += "</blockquote>"
return HttpResponse(str_out)
브라우저에서 http://localhost:8000/ 방문
PostgreSQL을 사용해 보겠습니다.
사용자 만들기
데이터베이스 작성
psql을 시작하고 데이터베이스 선택
$ docker exec -it proj01_db_1 bash
root@4c30256e6c8e:/# su postgres
postgres@4c30256e6c8e:/$ createuser scott -P
Enter password for new role:
Enter it again:
postgres@4c30256e6c8e:/$ createdb city
postgres@4c30256e6c8e:/$ psql
psql (13.3 (Debian 13.3-1.pgdg100+1))
Type "help" for help.
postgres=# \c city;
You are now connected to database "city" as user "postgres".
city=#
테이블 만들기
데이터 삽입
데이터 표시
city=# create table cities (id varchar(10) primary key, name text, population int, date_mod date);
CREATE TABLE
city=# insert into cities values ('t3461','広島',72814,'2001-6-14');
INSERT 0 1
city=# insert into cities values ('t3462','福山',81738,'2001-7-11');
INSERT 0 1
city=# insert into cities values ('t3463','東広島',93513,'2001-6-12');
INSERT 0 1
city=# select * from cities;
id | name | population | date_mod
-------+--------+------------+------------
t3461 | 広島 | 72814 | 2001-06-14
t3462 | 福山 | 81738 | 2001-07-11
t3463 | 東広島 | 93513 | 2001-06-12
(3 rows)
city=#
psql 종료
city=# exit
postgres@4c30256e6c8e:/$
참고
사용자에게 테이블에 대한 액세스 권한을 부여하는 방법
city=# grant all on cities to scott;
GRANT
Reference
이 문제에 관하여(Docker에서 Django/PostgreSQL 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ekzemplaro/items/bb4ac1575a7743a18401텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)