초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축
Dockerfile 만들기
DockerfileFROM python:3
RUN apt-get update && apt-get install -y \
nano
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
RUN mkdir -p /var/run/gunicorn
# CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
requirements.txt 만들기
requirements.txtDjango==2.2.6
gunicorn
docker-compose.yml 만들기
docker-compose.ymlversion: '3'
volumes:
gunicorn:
driver: local
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: django
ports:
- '8000:8000'
volumes:
- './web:/code'
- gunicorn:/var/run/gunicorn
tty: true
stdin_open: true
nginx:
image: nginx
container_name: test_nginx
ports:
- '80:80'
volumes:
- './nginx/html:/usr/share/nginx/html'
- './nginx/conf.d:/etc/nginx/conf.d'
- gunicorn:/var/run/gunicorn
depends_on:
- web
디렉토리 만들기
구성.
├── Dockerifle
├── requirements.txt
├── docker-compose.yml
├── nginx
│ └── conf.d # gunicornの設定ファイルを格納するため
└── web # djangoプロジェクトを格納するため
gunicorn 설정 파일 만들기
구성.
├── docker-compose.yml
├── Dockerifle
├── requirements.txt
├── nginx
│ └── conf.d
│ └── gunicorn.conf # コレを作成
└── web
gunicorn.conf의 내용은 이런 느낌입니다.
gunicorn.confupstream gunicorn-django {
server unix:///var/run/gunicorn/gunicorn.sock;
}
server {
listen 80;
server_name localhost;
location / {
try_files $uri @gunicorn;
}
location @gunicorn {
proxy_pass http://gunicorn-django;
}
}
docker-compose로 이미지를 빌드하고 컨테이너를 시작합니다.
$ docker-compose up -d
$ docker-compose ps에서 컨테이너가 둘 다 Up인지 확인하십시오.
장고 프로젝트 만들기
우선 장고 컨테이너에 들어갑니다.
$ docker-compose exec web bash
django 프로젝트를 만듭니다.
$ django-admin startproject conf .
바인드 마운트를 하고 있으므로, 호스트의 web 폴더의 아래에도 conf 폴더나 manage.py가 작성되고 있다고 생각합니다. 이번에는 응용 프로그램을 만드는 것은 생략하지만 실제 앱 개발은 여기에서 수행하는 것이 유용 할 수 있습니다.
settings.py 변경
방금 만든 django 프로젝트에서 settings.py의 ALLOWED_HOSTS를 변경합니다. 우선 어떤 서버 주소로부터의 액세스도 수리하기로 합니다만, 필요에 따라서 변경하는 것이 좋다고 생각합니다. . .
settings.pyALLOWED_HOSTS = ['*']
이탈로 컨테이너에서 빠져 나갑니다.
여기에서 시행 착오 ...
여기부터는 시행착오의 결과이므로, 비효율적인 방법이 되고 있다고 생각합니다. 아무쪼록 양해 바랍니다. 좋은 방법이 있으면 가르쳐 주실 수 있으면 기쁘다….
|ω・`)치라
일단 컨테이너를 내립니다.
$ docker-compose down
그런 다음 Dockerfile에 추가합니다.
Dockerfile# 末尾に追加
CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
다시 Docker를 업시킵니다.
$ docker-compose up --build -d
$ docker-compose ps에서 컨테이너가 Up인지 확인한 후 브라우저에서 localhost : 80에 액세스하여 로켓이 날아가는지 확인하십시오.
흠… 일단 움직였는데, 잘 되고 있는 확증이 없어요…
틀린 곳이 있으면 죄송합니다!
Reference
이 문제에 관하여(초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/grv2688/items/69871aac54722327c59e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FROM python:3
RUN apt-get update && apt-get install -y \
nano
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
RUN mkdir -p /var/run/gunicorn
# CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
requirements.txt
Django==2.2.6
gunicorn
docker-compose.yml 만들기
docker-compose.ymlversion: '3'
volumes:
gunicorn:
driver: local
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: django
ports:
- '8000:8000'
volumes:
- './web:/code'
- gunicorn:/var/run/gunicorn
tty: true
stdin_open: true
nginx:
image: nginx
container_name: test_nginx
ports:
- '80:80'
volumes:
- './nginx/html:/usr/share/nginx/html'
- './nginx/conf.d:/etc/nginx/conf.d'
- gunicorn:/var/run/gunicorn
depends_on:
- web
디렉토리 만들기
구성.
├── Dockerifle
├── requirements.txt
├── docker-compose.yml
├── nginx
│ └── conf.d # gunicornの設定ファイルを格納するため
└── web # djangoプロジェクトを格納するため
gunicorn 설정 파일 만들기
구성.
├── docker-compose.yml
├── Dockerifle
├── requirements.txt
├── nginx
│ └── conf.d
│ └── gunicorn.conf # コレを作成
└── web
gunicorn.conf의 내용은 이런 느낌입니다.
gunicorn.confupstream gunicorn-django {
server unix:///var/run/gunicorn/gunicorn.sock;
}
server {
listen 80;
server_name localhost;
location / {
try_files $uri @gunicorn;
}
location @gunicorn {
proxy_pass http://gunicorn-django;
}
}
docker-compose로 이미지를 빌드하고 컨테이너를 시작합니다.
$ docker-compose up -d
$ docker-compose ps에서 컨테이너가 둘 다 Up인지 확인하십시오.
장고 프로젝트 만들기
우선 장고 컨테이너에 들어갑니다.
$ docker-compose exec web bash
django 프로젝트를 만듭니다.
$ django-admin startproject conf .
바인드 마운트를 하고 있으므로, 호스트의 web 폴더의 아래에도 conf 폴더나 manage.py가 작성되고 있다고 생각합니다. 이번에는 응용 프로그램을 만드는 것은 생략하지만 실제 앱 개발은 여기에서 수행하는 것이 유용 할 수 있습니다.
settings.py 변경
방금 만든 django 프로젝트에서 settings.py의 ALLOWED_HOSTS를 변경합니다. 우선 어떤 서버 주소로부터의 액세스도 수리하기로 합니다만, 필요에 따라서 변경하는 것이 좋다고 생각합니다. . .
settings.pyALLOWED_HOSTS = ['*']
이탈로 컨테이너에서 빠져 나갑니다.
여기에서 시행 착오 ...
여기부터는 시행착오의 결과이므로, 비효율적인 방법이 되고 있다고 생각합니다. 아무쪼록 양해 바랍니다. 좋은 방법이 있으면 가르쳐 주실 수 있으면 기쁘다….
|ω・`)치라
일단 컨테이너를 내립니다.
$ docker-compose down
그런 다음 Dockerfile에 추가합니다.
Dockerfile# 末尾に追加
CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
다시 Docker를 업시킵니다.
$ docker-compose up --build -d
$ docker-compose ps에서 컨테이너가 Up인지 확인한 후 브라우저에서 localhost : 80에 액세스하여 로켓이 날아가는지 확인하십시오.
흠… 일단 움직였는데, 잘 되고 있는 확증이 없어요…
틀린 곳이 있으면 죄송합니다!
Reference
이 문제에 관하여(초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/grv2688/items/69871aac54722327c59e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: '3'
volumes:
gunicorn:
driver: local
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: django
ports:
- '8000:8000'
volumes:
- './web:/code'
- gunicorn:/var/run/gunicorn
tty: true
stdin_open: true
nginx:
image: nginx
container_name: test_nginx
ports:
- '80:80'
volumes:
- './nginx/html:/usr/share/nginx/html'
- './nginx/conf.d:/etc/nginx/conf.d'
- gunicorn:/var/run/gunicorn
depends_on:
- web
구성
.
├── Dockerifle
├── requirements.txt
├── docker-compose.yml
├── nginx
│ └── conf.d # gunicornの設定ファイルを格納するため
└── web # djangoプロジェクトを格納するため
gunicorn 설정 파일 만들기
구성.
├── docker-compose.yml
├── Dockerifle
├── requirements.txt
├── nginx
│ └── conf.d
│ └── gunicorn.conf # コレを作成
└── web
gunicorn.conf의 내용은 이런 느낌입니다.
gunicorn.confupstream gunicorn-django {
server unix:///var/run/gunicorn/gunicorn.sock;
}
server {
listen 80;
server_name localhost;
location / {
try_files $uri @gunicorn;
}
location @gunicorn {
proxy_pass http://gunicorn-django;
}
}
docker-compose로 이미지를 빌드하고 컨테이너를 시작합니다.
$ docker-compose up -d
$ docker-compose ps에서 컨테이너가 둘 다 Up인지 확인하십시오.
장고 프로젝트 만들기
우선 장고 컨테이너에 들어갑니다.
$ docker-compose exec web bash
django 프로젝트를 만듭니다.
$ django-admin startproject conf .
바인드 마운트를 하고 있으므로, 호스트의 web 폴더의 아래에도 conf 폴더나 manage.py가 작성되고 있다고 생각합니다. 이번에는 응용 프로그램을 만드는 것은 생략하지만 실제 앱 개발은 여기에서 수행하는 것이 유용 할 수 있습니다.
settings.py 변경
방금 만든 django 프로젝트에서 settings.py의 ALLOWED_HOSTS를 변경합니다. 우선 어떤 서버 주소로부터의 액세스도 수리하기로 합니다만, 필요에 따라서 변경하는 것이 좋다고 생각합니다. . .
settings.pyALLOWED_HOSTS = ['*']
이탈로 컨테이너에서 빠져 나갑니다.
여기에서 시행 착오 ...
여기부터는 시행착오의 결과이므로, 비효율적인 방법이 되고 있다고 생각합니다. 아무쪼록 양해 바랍니다. 좋은 방법이 있으면 가르쳐 주실 수 있으면 기쁘다….
|ω・`)치라
일단 컨테이너를 내립니다.
$ docker-compose down
그런 다음 Dockerfile에 추가합니다.
Dockerfile# 末尾に追加
CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
다시 Docker를 업시킵니다.
$ docker-compose up --build -d
$ docker-compose ps에서 컨테이너가 Up인지 확인한 후 브라우저에서 localhost : 80에 액세스하여 로켓이 날아가는지 확인하십시오.
흠… 일단 움직였는데, 잘 되고 있는 확증이 없어요…
틀린 곳이 있으면 죄송합니다!
Reference
이 문제에 관하여(초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/grv2688/items/69871aac54722327c59e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.
├── docker-compose.yml
├── Dockerifle
├── requirements.txt
├── nginx
│ └── conf.d
│ └── gunicorn.conf # コレを作成
└── web
upstream gunicorn-django {
server unix:///var/run/gunicorn/gunicorn.sock;
}
server {
listen 80;
server_name localhost;
location / {
try_files $uri @gunicorn;
}
location @gunicorn {
proxy_pass http://gunicorn-django;
}
}
$ docker-compose up -d
$ docker-compose ps에서 컨테이너가 둘 다 Up인지 확인하십시오.
장고 프로젝트 만들기
우선 장고 컨테이너에 들어갑니다.
$ docker-compose exec web bash
django 프로젝트를 만듭니다.
$ django-admin startproject conf .
바인드 마운트를 하고 있으므로, 호스트의 web 폴더의 아래에도 conf 폴더나 manage.py가 작성되고 있다고 생각합니다. 이번에는 응용 프로그램을 만드는 것은 생략하지만 실제 앱 개발은 여기에서 수행하는 것이 유용 할 수 있습니다.
settings.py 변경
방금 만든 django 프로젝트에서 settings.py의 ALLOWED_HOSTS를 변경합니다. 우선 어떤 서버 주소로부터의 액세스도 수리하기로 합니다만, 필요에 따라서 변경하는 것이 좋다고 생각합니다. . .
settings.pyALLOWED_HOSTS = ['*']
이탈로 컨테이너에서 빠져 나갑니다.
여기에서 시행 착오 ...
여기부터는 시행착오의 결과이므로, 비효율적인 방법이 되고 있다고 생각합니다. 아무쪼록 양해 바랍니다. 좋은 방법이 있으면 가르쳐 주실 수 있으면 기쁘다….
|ω・`)치라
일단 컨테이너를 내립니다.
$ docker-compose down
그런 다음 Dockerfile에 추가합니다.
Dockerfile# 末尾に追加
CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
다시 Docker를 업시킵니다.
$ docker-compose up --build -d
$ docker-compose ps에서 컨테이너가 Up인지 확인한 후 브라우저에서 localhost : 80에 액세스하여 로켓이 날아가는지 확인하십시오.
흠… 일단 움직였는데, 잘 되고 있는 확증이 없어요…
틀린 곳이 있으면 죄송합니다!
Reference
이 문제에 관하여(초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/grv2688/items/69871aac54722327c59e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ docker-compose exec web bash
$ django-admin startproject conf .
방금 만든 django 프로젝트에서 settings.py의 ALLOWED_HOSTS를 변경합니다. 우선 어떤 서버 주소로부터의 액세스도 수리하기로 합니다만, 필요에 따라서 변경하는 것이 좋다고 생각합니다. . .
settings.py
ALLOWED_HOSTS = ['*']
이탈로 컨테이너에서 빠져 나갑니다.
여기에서 시행 착오 ...
여기부터는 시행착오의 결과이므로, 비효율적인 방법이 되고 있다고 생각합니다. 아무쪼록 양해 바랍니다. 좋은 방법이 있으면 가르쳐 주실 수 있으면 기쁘다….
|ω・`)치라
일단 컨테이너를 내립니다.
$ docker-compose down
그런 다음 Dockerfile에 추가합니다.
Dockerfile# 末尾に追加
CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
다시 Docker를 업시킵니다.
$ docker-compose up --build -d
$ docker-compose ps에서 컨테이너가 Up인지 확인한 후 브라우저에서 localhost : 80에 액세스하여 로켓이 날아가는지 확인하십시오.
흠… 일단 움직였는데, 잘 되고 있는 확증이 없어요…
틀린 곳이 있으면 죄송합니다!
Reference
이 문제에 관하여(초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/grv2688/items/69871aac54722327c59e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ docker-compose down
# 末尾に追加
CMD ["gunicorn", "conf.wsgi", "--bind=unix:/var/run/gunicorn/gunicorn.sock"]
$ docker-compose up --build -d
Reference
이 문제에 관하여(초학자가 Docker를 사용하여 django+gunicorn+Nginx 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/grv2688/items/69871aac54722327c59e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)