일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Ngrinder Docker
- redis cli
- AWS S3 계정이동
- 패스트캠퍼스
- 직장인인강
- 한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online
- ERR unknown command 'JSON.GET'
- ERR unknown command 'JSON.SET'
- elastic cache
- 환급챌린지
- putty Inactive
- Avast 구독취소
- nodemailer
- AWS S3 migration
- 캐시백
- 캐시백챌린지
- redis-cli
- Window redis-cli
- Avast Security
- aws
- 직장인자기계발
- 패스트캠퍼스후기
- gitlab 잔디옮기기
- RedisJSON
- 잔디이전
- AWS S3 버킷 삭제
- aws s3
- vscode
- 패캠챌린지
- Redis
- Today
- Total
Developing
패스트캠퍼스 캐시백 챌린지 33일차 본문
Nginx를 활용하여 docker build에 적용해보는 클립을 수강하는식으로 챌린지를 진행하였다. config 파일이나 Dockerfile들 작성하는 것이 복잡하긴한데 좋은 경험이 되는 것 같다. docker command로 image나 container 지우고 생성하는 것은 많이 해보아서 어느정도 손에 익게 된 것 같다. 다음 포스팅은 docker-compose를 활용하는 부분에 대한 포스팅을 할 예정이다.
Nginx Docker Build
지난번에 도커컨테이너를 실행해보았었다. 만약 d 옵션도 주게되면 putty에서 다른작업도 할 수 있게된다.
docker run -d -p 8000:8000 docker/django
이제 nginx를 적용하기 위해 장고파일이 위치한 디렉토리 이전 디렉토리에서 nginx에 대한 디렉토리를 만들어준다.
cd ..
mkdir nginx
manage.py runserver로 컨테이너안에서 실행시키지 않고 wsgi를 사용할 것이기에 만들었던 Dockerfile에서 아래 두줄은 지워준다.
nginx 폴더와 연결해주기위해 장고 디렉토리안에서 uwsgi.ini 라는 파일을 생성해준다.
[uwsgi]
socket = /srv/docker-django/django.sock
master = true
processes = 1
threads = 2
chdir = /srv/docker-django
module = fastcampus.wsgi
logto = /var/log/uwsgi/uwsgi.log
log-reopen = true
vacuum = true
일반적으로 docker를 설치하면 docker-compose도 같이 설치되지만 ubuntu의 경우에는 따로 설치를 해주어야 한다.
sudo apt install docker-compose
docker-compose 사용법을 확인하고 싶으면 그 자체를 그대로 입력해보면 된다.
docker-compose
nginx 폴더로 가서 config 파일을 생성해준다.
cd nginx
vi nginx.conf
user root;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msile6";
include /etc/nginx/sites-enabled/*;
}
nginx-app config 파일도 생성해준다.
vi nginx-app.conf
upstream uwsgi {
server unix:/srv/docker-django/apps.sock;
}
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 128M
location / {
uwsgi_pass uwsgi;
include uwsgi_params;
}
location /media/ {
alias /srv/docker-django/.media/;
}
location /static/ {
alias /srv/docker-django/.static/;
}
}
nginx 디렉토리내에서의 Dockerfile도 생성해준다.
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
COPY nginx-app.conf /etc/nginx/sites-availalbe/
RUN mkdir -p /etc/nginx/sites-enabled/\\
&& ln -s /etc/nginx/sites-available/nginx-app.conf /etc/nginx/sites-enable
EXPOSE 80
CMD ["nginx" , "-g" , "daemon off;"]
docker-nginx 라는 명으로 이미지를 빌드해주자.
docker build -t docker/nginx .
이미지가 빌드되어있는 것을 확인할 수 있다. python과 nginx는 docker에서 기본적으로 제공되는 이미지라고 생각하면된다.
이제 docker container를 실행시켜보자.
docker run -p 80:80 docker/nginx
(User가 80번 포트로오면 이 서버내의 80번 포트를 전송해주라는 의미이다.)
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Devops > Fastcampus 캐시백 챌린지' 카테고리의 다른 글
패스트캠퍼스 캐시백 챌린지 34일차 (0) | 2022.05.21 |
---|---|
패스트캠퍼스 캐시백 챌린지 중간미션, 한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online 강의 후기 (0) | 2022.05.21 |
패스트캠퍼스 캐시백 챌린지 32일차 (0) | 2022.05.19 |
패스트캠퍼스 캐시백 챌린지 31일차 (0) | 2022.05.18 |
패스트캠퍼스 캐시백 챌린지 30일차 (0) | 2022.05.17 |