이번에는 장고 프로젝트 내에서의 docker로 웹 서버를 구동시키지 않고,
GCP 가상머신에서 maraidb와 django 웹 서버 구동을 시킬 것이다.
또한, Nginx를 사용하지 않을 것이다.
장고 개발 모드
컨테이너 생성
- python:3이라는 이미지를 바탕으로 python__1 이라는 이름의 컨테이너를 생성한다.
- 시간대는 Asia/Seoul로 기준을 잡고, 포트는 8000번대 포트로 설정한다.
- ls /docker_projects 명령어로 django__1이라는 파일이 생성된 것을 확인할 수 있다.
내부 프로그램 업데이트
- pip를 통해서 최신판으로 업데이트를 진행한다.
# python__1 컨테이너 생성
docker run -d \
--name python__1 \
--restart unless-stopped \
-e TZ=Asia/Seoul \
-p 8000:8000 \
-v /docker_projects/python__1/data/site_projects/python__1:/data/site_projects/python__1 \
python:3 \
tail -f /dev/null
# 내부 프로그램 업데이트
docker exec python__1 apt-get update -y
docker exec python__1 apt-get install vim mlocate -y
docker exec python__1 pip install --upgrade pip
docker exec python__1 pip install Django
내부 프로그램 업데이트
docker exec python__1 apt-get update -y
docker exec python__1 apt-get install vim mlocate -y
docker exec python__1 pip install --upgrade pip
docker exec python__1 pip install Django mysqlclient gunicorn
폴더에 깃 연결
- 먼저 깃을 연결시킬 폴더를 명령어로 생성한다.
- 그 다음 깃을 연결하고 remote add 깃 명령어로 가져올 깃허브 주소를 입력한다.
- 깃 명령어를 통해서 master 브랜치를 가져온다.
# 폴더에 깃 연결
# 만약 해당 폴더가 존재한다면 삭제
docker exec python__1 rm -rf /data/site_projects/python__1/src/
# 폴더 생성
docker exec python__1 mkdir /data/site_projects/python__1/src/
# 깃 연결
docker exec python__1 bash -c "cd /data/site_projects/python__1/src/ ; git init"
docker exec python__1 bash -c "cd /data/site_projects/python__1/src/ ; git remote add origin https://github.com/SMin1620/MeGa_Shop"
# 폴더에 깃에 있는 최신소스코드 가져오기
docker exec python__1 bash -c "cd /data/site_projects/python__1/src/ ; git pull origin main"
필수 마이그레이트
# 의존성 설치
docker exec python__1 bash -c "cd /data/site_projects/python__1/src/ ; pip install -r requirements.txt"
# 마이그레이트
docker exec python__1 bash -c "cd /data/site_projects/python__1/src/ ; python manage.py migrate --settings=base.settings.prod"
# static collect
docker exec -it python__1 bash -c "cd /data/site_projects/python__1/src ; echo yes | python manage.py collectstatic --settings=base.settings.prod"
# 장고를 운영모드로 실행
docker exec python__1 bash -c "cd /data/site_projects/python__1/src ; nohup gunicorn --bind=0.0.0.0:8000 base.wsgi > /data/site_projects/python__1/src/nohup.log 2>&1 &"
# 장고 종료, 필요시에만 사용하세요.
docker exec python__1 pkill "gunicorn"
'DevOps > Docker' 카테고리의 다른 글
[Docker] 로컬 환경에서 Django와 MySQL을 docker-compose로 구동 (with. .env파일생성) (1) (0) | 2022.06.02 |
---|---|
[Docker] Docker 이미지 종류 (with. Python) (0) | 2022.06.01 |
[Docker] django 터미널에서 docker-compose를 이용하여 개발환경 구성하기 (0) | 2022.04.03 |
[Docker] 4. Django 개발 환경 세팅 (0) | 2022.04.03 |
[Docker] 3. Nginx 컨테이너 설치 및 웹서버 구동 (0) | 2022.04.02 |