docker - compose 배치 django + nginx + mysql 프로젝트
4119 단어 Docker
FROM nginx
#
EXPOSE 80 8000
#RUN rm /etc/nginx/conf.d/default.conf
ADD nginx.conf /etc/nginx/conf.d/
RUN mkdir -p /usr/share/nginx/html/static
RUN mkdir -p /usr/share/nginx/html/media
2. nginx 프로필 준비 [root@mail nginx]# vi nginx.conf
server {
listen 80;
server_name localhost;
charset utf-8;
error_log /tmp/nginx_error.log;
access_log /tmp/nginx_access.log;
location /media {
alias /usr/share/nginx/html/media;
}
location /static {
alias /usr/share/nginx/html/static;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://web:8000;
}
}
nginx 설정 에 대해 다음 과 같은 두 가 지 를 주의해 야 합 니 다. 매우 중요 합 니 다. location 정적 파일 설정, nginx 가 지정 한 정적 파일 원본 디 렉 터 리 는 / usr / share / nginx / html / 이 며, 이 디 렉 터 리 의 정적 파일 은 웹 용기 에서 volumes 를 통 해 동기 화 됩 니 다.그래서 잠시 만 요. docker - compose 는 아주 중요 합 니 다. proxy_pass 호스트 에 직접 설정 하 는 것 과 는 다 릅 니 다. host 는 구체 적 인 IP 로 쓸 수 없습니다. 서비스 이름 을 쓰 려 면 웹 서비스의 name 을 쓰 십시오. 웹 은 docker - compose 에서 정의 하 는 웹 응용 프로그램의 service 이름 입 니 다.뒤에 docker - compose 설정 을 쓸 것 입 니 다.
3. django 부분 1, Dockerfile 작성 [root@mail User]# vi Dockerfile
FROM python:3.5
#MySQL-Python
RUN mkdir /User
#
WORKDIR /User
#
ADD . /User
#install any needed pacakges in requirements.txt, Python
。
RUN pip install -r requirements.txt
#
EXPOSE 80 8000
#
ENV SPIDER=/User
2, requirements. txt 파일 추가
Django==1.18
Pillow
PyMySQL
3. 프로젝트 settings. py 파일 설정 수정 부분 은 두 가지 가 있 습 니 다.
ALLOWED_HOSTS = ['*', ]
。。。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dataname',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'db',
}
}
여기 NAME 가 docker - compose. yml 파일 에 있 는 MYSQL 입 니 다.DATABASE, PASSWORD 는 docker - compose. yml 파일 의 MYSQL 입 니 다.ROOT_PASSWORD, HOST 는 docker - compose. yml 의 db 4 입 니 다. 스 크 립 트 start. py 시작
#!/bin/bash
python manage.py collectstatic --noinput &&
python manage.py migrate &&
gunicorn User.wsgi:application -c gunicorn.conf
5. 이 밖 에 django 응용 프로그램 은 gunicorn 을 웹 서버 로 선택 하고 gunicorn 의 설정 파일 은 다음 과 같 습 니 다.
workers=4
bind=['0.0.0.0:8000']
proc_name='blog'
pidfile='/tmp/blog.pid'
worker_class='gevent'
max_requests=6000
4. docker - compose 파일 vi Docker - compose. yml 작성
version: "3"
services:
db:
image: mysql
environment:
MYSQL_DATABASE: dataname
MYSQL_ROOT_PASSWORD: 123456
volumes:
- /srv/db:/var/lib/mysql
restart: always
web:
build: ./User
ports:
- "8001:8001"
volumes:
- ./User:/User
- /tmp/logs:/tmp
command: python3 manage.py runserver 0.0.0.0:8001
nginx:
build: ./nginx
ports:
- "81:80"
volumes:
- ./User/static:/usr/share/nginx/html/static
- ./User/media:/usr/share/nginx/html/media
links:
- web
depends_on:
- web
restart: always
5. a 컴 파일 및 시작, docker - compose build b 컴 파일, docker - compose up 또는 docker - compose up - d (배경 실행) 를 시작 하여 브 라 우 저 에 localhost 를 입력 하면 프로젝트 에 성공 적 으로 접근 할 수 있 습 니 다. 참고 글https://blog.csdn.net/hbnn111/article/details/77176629
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 Docker for Mac참고 , 나는 옆에 있는 Mac에 Docker를 설치하고 컨테이너를 세워 보고 싶다. Docker Hub를 처음 사용할 때는 계정을 만들어야 합니다. Docker.dmg을 실행하면 Docker가 설치됩니다. Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.