paint-brush
Django 애플리케이션을 Docker화하고 배포하는 방법~에 의해@abrahamdahunsi
9,834 판독값
9,834 판독값

Django 애플리케이션을 Docker화하고 배포하는 방법

~에 의해 Abraham Dahunsi 15m2023/10/14
Read on Terminal Reader

너무 오래; 읽다

이 자습서에서는 Docker, Django 및 Heroku를 사용하여 Django 애플리케이션을 Docker화하고 배포하는 방법을 배웠습니다. Docker가 애플리케이션을 위한 격리되고 재현 가능한 환경을 만드는 데 어떻게 도움이 되는지, 그리고 Heroku가 배포 프로세스를 단순화하는 방법을 살펴보았습니다. 또한 Docker Compose를 사용하여 여러 컨테이너와 서비스를 관리하는 방법과 다양한 환경에 맞게 Django 설정을 구성하는 방법도 배웠습니다.
featured image - Django 애플리케이션을 Docker화하고 배포하는 방법
Abraham Dahunsi  HackerNoon profile picture
0-item
1-item

Docker는 애플리케이션을 구축, 실행, 배포하기 위한 플랫폼입니다. 이를 통해 애플리케이션과 모든 종속 항목을 단일 컨테이너로 패키징한 다음 Docker가 설치된 모든 시스템에서 실행할 수 있습니다.


Docker는 호환성 문제에 대해 걱정할 필요 없이 한 환경에서 다른 환경으로 애플리케이션을 쉽게 이동할 수 있도록 해주기 때문에 웹 애플리케이션 배포에 이상적입니다.


반면 Django는 강력하고 확장 가능한 웹 애플리케이션을 쉽게 만들 수 있게 해주는 Python 웹 프레임워크입니다. Django는 사용자 인증 시스템, 데이터베이스 추상화 계층 및 템플릿 엔진과 같은 다양한 기능을 즉시 제공합니다.


이를 통해 Django를 쉽게 시작하고 복잡한 웹 애플리케이션을 빠르고 쉽게 구축할 수 있습니다.


Django 애플리케이션을 Dockerizing하고 배포하는 것은 비교적 간단한 프로세스입니다. 관련된 주요 단계는 다음과 같습니다.


1. Django 애플리케이션용 Dockerfile을 생성합니다.

2. Dockerfile에서 Docker 이미지를 빌드합니다.

3. Docker 이미지를 프로덕션 환경에 배포합니다.


이 기사에서는 Django 애플리케이션을 도킹하고 배포하는 단계를 자세히 안내합니다. 또한 Django 애플리케이션을 프로덕션 환경에 배포하기 위한 몇 가지 팁과 모범 사례도 제공하겠습니다.

전제조건

이 튜토리얼을 따르려면 다음 전제 조건이 필요합니다.


  • 파이썬 3.9 이상
  • 도커
  • 도커 작성
  • 힘내


Django 애플리케이션을 프로덕션 환경에 배포하려면 AWS, Azure 또는 Google Cloud Platform과 같은 클라우드 호스팅 공급자도 필요합니다. 하지만 이 튜토리얼에서는 Heroku를 사용하겠습니다.


모든 필수 구성 요소가 설치되면 Django 애플리케이션 Dockerizing 및 배포를 시작할 준비가 된 것입니다!

Django 프로젝트 만들기

새로운 Django 프로젝트를 시작하려면 django-admin 명령을 사용해야 합니다. 이 명령을 사용하면 Django 애플리케이션을 위한 프로젝트 디렉터리와 일부 기본 파일을 만들 수 있습니다. 예를 들어 my_project 라는 프로젝트를 생성하려는 경우 터미널에서 다음 명령을 실행할 수 있습니다.


django-admin startproject my_project


그러면 다음 구조의 `my_project`라는 디렉터리가 생성됩니다.



내_프로젝트/


├── 관리.py


└── 프로젝트/


├── 초기화 .py


├── settings.py


└── urls.py


manage.py 파일은 개발 서버 실행, 데이터베이스 마이그레이션 생성, 코드 테스트 등 프로젝트에 대한 다양한 작업을 수행할 수 있는 스크립트입니다. project/ 디렉터리에는 프로젝트에 대한 설정 및 구성 파일이 포함되어 있습니다.


settings.py 파일은 데이터베이스 연결, 설치된 앱, 미들웨어 등 프로젝트의 기본 설정을 정의합니다. urls.py 파일은 프로젝트의 URL을 앱 보기에 매핑합니다.


새로운 Django 프로젝트를 생성한 후 개발 서버를 실행하여 로컬에서 테스트할 수 있습니다. 개발 서버는 컴퓨터에서 실행되고 프로젝트 파일을 제공하는 간단한 웹 서버입니다. 개발 서버를 시작하려면 터미널에서 다음 명령을 실행하세요.


python manage.py runserver


기본적으로 포트 8000에서 서버가 시작됩니다. 그런 다음 브라우저를 열고 http://localhost:8000/ 으로 이동하여 기본 Django 홈페이지를 볼 수 있습니다.

Django 프로젝트의 기본 구조와 파일

Django 프로젝트는 웹 애플리케이션의 기능과 모양을 정의하는 여러 파일과 디렉터리로 구성됩니다. Django 프로젝트의 주요 구성요소는 다음과 같습니다.


manage.py : 앱 생성, 데이터베이스 마이그레이션, 코드 테스트 등 프로젝트 관리를 위한 다양한 명령을 제공하는 스크립트입니다.


project/ : 프로젝트에 대한 설정 및 구성 파일이 포함된 디렉터리입니다. 이 디렉터리의 주요 파일은 다음과 같습니다.

 `settings.py`: A file that defines the main settings for your project, such as the database connection, the installed apps, and the middleware. You can customize this file to suit your needs and preferences. `urls.py`: A file that maps the URLs of your project to the views of your apps. You can define different URL patterns for different parts of your web application.


apps/ : 프로젝트를 구성하는 모든 Django 앱이 포함된 디렉터리입니다. 각 Django 앱은 웹 애플리케이션에 특정 기능을 제공하는 별도의 Python 패키지입니다. 자신만의 앱을 만들거나 타사 소스의 기존 앱을 사용할 수 있습니다.

로컬에서 프로젝트 테스트

프로젝트를 로컬에서 테스트하려면 개발 서버나 Django에서 제공하는 테스트 프레임워크를 사용할 수 있습니다. 개발 서버는 컴퓨터에서 실행되고 프로젝트 파일을 제공하는 간단한 웹 서버입니다. 테스트 프레임워크는 코드에 대한 단위 테스트를 작성하고 실행할 수 있는 도구입니다.


개발 서버를 사용하려면 터미널에서 다음 명령을 실행하면 됩니다.


python manage.py runserver


기본적으로 포트 8000에서 서버가 시작됩니다. 그런 다음 브라우저를 열고 `http://localhost:8000/`로 이동하여 기본 Django 홈페이지를 볼 수 있습니다.


테스트 프레임워크를 사용하려면 터미널에서 다음 명령을 실행할 수 있습니다.


python manage.py test


그러면 프로젝트에 대한 모든 단위 테스트가 실행됩니다. 모든 테스트를 통과하면 다음과 같은 메시지가 표시됩니다.



 Ran 1 test in 0.001s Ok


테스트 중 하나라도 실패하면 실패에 대한 세부정보가 포함된 오류 메시지가 표시됩니다. 이 정보를 사용하여 코드를 디버깅하고 수정할 수 있습니다.


프로젝트를 로컬에서 테스트하고 결과에 만족하면 이를 프로덕션 환경에 배포할 수 있습니다.

Django 프로젝트 도커라이징

Dockerfile이란 무엇입니까?

Dockerfile은 Docker 이미지를 빌드하는 방법에 대한 지침이 포함된 텍스트 파일입니다. Docker 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정 등 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 자체 포함 실행 가능 패키지입니다.


Dockerfile을 생성하려면 기본 이미지, 필수 패키지를 설치하기 위해 실행할 명령, 애플리케이션을 시작하기 위해 실행할 명령을 지정해야 합니다.

Django 프로젝트의 Dockerfile 예

다음은 Django 프로젝트의 Dockerfile 예입니다.


 FROM python:3.9 #Install Django and other required packages RUN pip install django # Copy the Django project files into the image COPY ./app # Set the working directory WORKDIR /app # Start the Django development server CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]



이 Dockerfile은 Python 3.9, Django 및 Django 프로젝트 파일이 포함된 Docker 이미지를 빌드합니다. 이미지는 포트 8000에서 Django 개발 서버를 시작하도록 구성됩니다.

docker-compose.yml 파일은 무엇인가요?

docker-compose.yml 파일은 Dockerized 애플리케이션을 구성하는 서비스를 정의하는 YAML 파일입니다. 서비스는 단일 Docker 컨테이너일 수도 있고 Docker 컨테이너 그룹일 수도 있습니다.


Django 프로젝트에 대한 docker-compose.yml 파일을 생성하려면 웹 서비스와 데이터베이스 서비스를 정의해야 합니다. 웹 서비스는 Django 애플리케이션을 실행하고, 데이터베이스 서비스는 Django 애플리케이션이 사용하는 데이터베이스를 실행합니다.

Django 프로젝트의 docker-compose.yml 파일 예

다음은 Django 프로젝트에 대한 docker-compose.yml 파일의 예입니다.


 version: "3.9" services: web: build: ports: -"8000:8000" volumes -./:/app db: image: postgres:14.0-alpine volumes: -./postgres:/var/lib/postgresql/data



이 docker-compose.yml 파일은 webdb 라는 두 가지 서비스를 정의합니다. web 서비스는 이전 섹션에서 만든 Dockerfile에서 Docker 이미지를 빌드합니다. web 서비스는 또한 Django 개발 서버에 액세스할 수 있도록 호스트 시스템에 포트 8000을 노출합니다.


db 서비스는 공식 PostgreSQL Docker 이미지를 사용합니다. db 서비스는 또한 호스트 시스템의 postgres 디렉터리를 컨테이너 내부의 /var/lib/postgresql/data 디렉터리에 마운트합니다. 이렇게 하면 컨테이너를 다시 시작해도 데이터베이스 파일이 유지됩니다.

Docker 컨테이너 빌드 및 실행

Docker 컨테이너를 빌드하고 실행하려면 다음 명령을 사용할 수 있습니다.


docker-compose up -d


이 명령은 'web' 및 'db' 서비스가 아직 존재하지 않는 경우 해당 Docker 이미지를 빌드합니다. 그러면 이 명령은 `web` 및 `db` 서비스에 대한 Docker 컨테이너를 시작합니다.

Dockerized Django 프로젝트를 로컬에서 테스트하기

Docker 컨테이너가 실행되면 웹 브라우저를 사용하여 로컬에서 Dockerized Django 프로젝트를 테스트할 수 있습니다. 웹 브라우저를 열고 `http://localhost:8000`으로 이동합니다. 이제 Django 개발 페이지를 볼 수 있습니다.


http://localhost:8000/admin/ 에서 Django 관리 페이지에 로그인할 수도 있습니다. 사용자 이름과 비밀번호는 기본적으로 adminadmin 입니다.

Django 프로젝트 배포

이제 Git, GitHub 및 Heroku를 사용하여 Django 프로젝트를 클라우드 플랫폼에 배포할 차례입니다. 또한 웹 브라우저를 사용하여 배포된 웹 애플리케이션을 테스트합니다.

Git이란 무엇이며 왜 필요한가요?

Git은 프로젝트의 소스 코드를 관리하는 데 도움이 되는 소프트웨어 도구입니다. 이를 통해 코드 변경 사항을 추적하고, 다른 개발자와 협력하고, 문제가 발생하면 이전 버전으로 되돌릴 수 있습니다.


Git을 사용하면 코드를 GitHub와 같은 원격 저장소에 푸시하여 코드를 저장하고 다른 사람과 공유할 수도 있습니다.

GitHub 리포지토리를 만들고 코드를 GitHub에 푸시하는 방법은 무엇입니까?

이미 GitHub 리포지토리를 생성한 경우 다음 사항을 무시하세요.


Django 프로젝트를 위한 GitHub 리포지토리를 만들려면 다음 단계를 따라야 합니다.


- GitHub 에서 무료 계정 만들기


- 프로필 페이지로 이동하여 저장소 옆에 있는 새로 만들기 버튼을 클릭합니다.


- 저장소에 django-docker-app 과 같은 이름을 지정하고 선택적으로 설명을 추가합니다.


- 저장소 생성 버튼을 클릭합니다.


이제 GitHub에 빈 저장소가 생성되었습니다. 코드를 이 저장소에 푸시하려면 터미널에서 `git` 명령을 사용해야 합니다. 로컬 컴퓨터에 이미 Git을 설치하고 Django 프로젝트 폴더에 Git 저장소를 초기화했다고 가정합니다. 그렇지 않은 경우 공식 문서를 따르십시오.


코드를 GitHub에 푸시하려면 다음 단계를 따라야 합니다.


- 터미널에서 Django 프로젝트 폴더로 이동하고 git status 입력하여 저장소의 현재 상태를 확인하세요. 다음과 같은 내용이 표시됩니다.


 On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt no changes added to commit (use "git add" and/or "git commit -a")


이는 커밋을 위해 준비되지 않은 일부 수정된 파일이 있음을 의미합니다. 커밋을 위해 준비하려면 git add 명령을 사용해야 합니다.


- git add 입력하세요. 커밋을 위해 수정된 모든 파일을 준비합니다. 또는 git add Dockerfile docker-compose.yml requirements.txt 와 같이 준비하려는 파일 이름을 지정할 수 있습니다.


- git status 다시 입력하여 저장소의 업데이트된 상태를 확인하세요. 다음과 같은 내용이 표시됩니다.


 On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt


이는 커밋을 위해 준비된 일부 변경 사항이 있음을 의미합니다. 커밋하려면 git commit 명령을 사용해야 합니다.


- git commit -m "Add Docker configuration files" 수행한 작업을 설명하는 메시지와 함께 단계적 변경 사항을 커밋합니다. 또는 -m 플래그를 생략하고 git commit 입력한 후 열리는 편집기에 더 긴 메시지를 입력할 수 있습니다.


- 저장소의 최종 상태를 보려면 git status 다시 입력하세요. 다음과 같은 내용이 표시됩니다.


 On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean


이는 아직 원격 저장소에 푸시되지 않은 커밋이 하나 있음을 의미합니다. 푸시하려면 git push 명령을 사용해야 합니다.


- git push origin main 입력하여 로컬 커밋을 GitHub의 원격 저장소에 푸시합니다.


또는 git push origin main 과 같이 푸시하려는 원격 이름과 분기 이름을 지정할 수 있습니다.


GitHub 사용자 이름과 비밀번호를 입력하거나 개인 액세스 토큰을 사용하여 본인을 인증하라는 메시지가 나타날 수 있습니다.


- GitHub 저장소 페이지로 이동하여 새로 고침하세요. 페이지에 코드와 커밋 메시지가 표시되어야 합니다.


코드를 GitHub에 성공적으로 푸시했습니다. 이제 Django 프로젝트를 Heroku에 배포하는 다음 단계로 넘어갈 수 있습니다.

Heroku란 무엇이며 왜 필요한가요?

Heroku는 웹 애플리케이션을 배포, 관리 및 확장할 수 있는 클라우드 플랫폼입니다. Python, Django, PostgreSQL과 같은 다양한 프로그래밍 언어, 프레임워크 및 데이터베이스를 지원합니다.


또한 로깅, 모니터링, 캐싱, 보안 등과 같은 웹 개발 경험을 향상시키는 다양한 기능과 추가 기능을 제공합니다.


배포 프로세스를 더 쉽고 빠르게 만들기 때문에 Heroku가 필요합니다. Heroku를 사용하면 서버, 네트워크 또는 운영 체제와 같은 기본 인프라에 대해 걱정하지 않고 Django 프로젝트를 배포할 수 있습니다.


Heroku를 사용하여 트래픽과 수요에 따라 웹 애플리케이션을 확장할 수도 있습니다. Heroku는 웹 배포의 모든 복잡성과 과제를 처리합니다.

Heroku 계정을 만들고 Heroku CLI 도구를 설치하는 방법은 무엇입니까?

Heroku 계정을 만들려면 다음 단계를 따라야 합니다.


- Heroku 에 접속하여 회원가입 버튼을 클릭하세요.

- 이름, 이메일, 비밀번호 등 필수 정보를 입력하세요.

- Python과 같은 기본 개발 언어를 선택합니다.

- 무료 계정 만들기 버튼을 클릭하세요.

- 이메일을 확인하고 링크를 클릭하여 계정을 확인하세요.


이제 무료 Heroku 계정이 생성되었습니다. Heroku CLI 도구를 설치하려면 다음 단계를 따라야 합니다.


- [ Heroku CLI 로 이동하여 Windows, Mac OS X 또는 Linux와 같은 운영 체제에 적합한 설치 프로그램을 선택하십시오.


- 설치 프로그램을 다운로드하여 실행하고 화면의 지시를 따르십시오.


- 터미널을 열고 heroku --version 입력하여 설치가 성공적으로 완료되었는지 확인합니다. 다음과 같은 내용이 표시됩니다.


heroku/7.59.0 win32-x64 node-v12.21.0


이제 로컬 컴퓨터에 Heroku CLI 도구가 설치되었습니다. 이 도구를 사용하여 터미널에서 Heroku와 상호 작용할 수 있습니다.

Heroku 앱을 만들고 필수 설정을 구성하는 방법은 무엇입니까?

Django 프로젝트를 위한 Heroku 앱을 만들려면 다음 단계를 따라야 합니다.


- 터미널에서 Django 프로젝트 폴더로 이동하고 heroku login 입력하여 Heroku CLI 도구를 사용하여 Heroku 계정에 로그인합니다. 이메일과 비밀번호를 입력하거나 웹 브라우저를 사용하여 본인을 인증하라는 메시지가 나타날 수 있습니다.


- heroku create django-docker-app 입력하여 django-docker-app 이라는 이름의 새 Heroku 앱을 만듭니다. 또는 이름을 생략하고 Heroku가 임의의 이름을 생성하도록 할 수 있습니다. 다음과 같은 내용이 표시됩니다.


 Creating ⬢ django-docker-app... done https://django-docker-app.herokuapp.com/ | https://git.heroku.com/django-docker-app.git


이는 웹 URL과 Git URL을 사용하여 새로운 Heroku 앱을 생성했음을 의미합니다. 웹 URL은 배포된 웹 애플리케이션에 액세스할 수 있는 곳이고 Git URL은 코드를 Heroku에 푸시할 수 있는 곳입니다.


- Django 프로젝트의 SECRET_KEY 설정에 대한 환경 변수를 설정하려면 heroku config:set SECRET_KEY=<your_secret_key> 를 입력하세요. <your_secret_key> Django Secret Key Generator 와 같은 도구를 사용하여 생성할 수 있는 임의의 문자열로 바꿔야 합니다.


또는 settings.py 파일에 있는 기존 비밀 키를 사용할 수 있지만 보안상의 이유로 권장되지 않습니다.


- Heroku 앱에 무료 PostgreSQL 데이터베이스 추가 기능을 추가하려면 heroku addons:create heroku-postgresql:hobby-dev 입력하세요. 그러면 Django 프로젝트에 대한 새 데이터베이스가 생성되고 Django 프로젝트의 DATABASE_URL 설정에 대한 환경 변수가 설정됩니다. 다음과 같은 내용이 표시됩니다.

 Creating heroku-postgresql:hobby-dev on ⬢ django-docker-app... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-curved-12345 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentation


이는 이름이 PostgreSQL-curved-12345 이고 URL이 DATABASE_URL 인 PostgreSQL 데이터베이스 추가 기능을 추가했음을 의미합니다.


- heroku config 입력하여 Heroku 앱에 설정한 환경 변수 목록을 확인하세요. 다음과 같은 내용이 표시됩니다.


 === django-docker-app Config Vars DATABASE_URL: postgres://<username>: <password>@<host>:<port>/<database> SECRET_KEY: <your_secret_key>


이는 Django 프로젝트 설정에서 사용할 수 있는 DATABASE_URLSECRET_KEY 라는 두 가지 환경 변수가 있음을 의미합니다.


이제 Heroku 앱을 만들고 Django 프로젝트에 필요한 설정을 구성했으므로 Django 프로젝트를 Heroku에 배포하는 다음 단계로 넘어갈 수 있습니다.


` heroku 명령을 사용하여 Django 프로젝트를 Heroku에 배포하는 방법은 무엇입니까 ?


heroku 명령을 사용하여 Django 프로젝트를 Heroku에 배포하려면 다음 단계를 따라야 합니다.


- 터미널에서 Django 프로젝트 폴더로 이동하고 heroku container:login 입력하여 Heroku CLI 도구를 사용하여 Heroku Container Registry에 로그인합니다. 그러면 Docker 이미지를 Heroku에 푸시할 수 있습니다.


- heroku container:push web -a django-docker-app 입력하여 Docker 이미지를 빌드하고 Heroku에 푸시합니다. Heroku 앱의 이름(이 경우 django-docker-app) 을 지정해야 합니다. 다음과 같은 내용이 표시됩니다.


 === Building web (Dockerfile) Sending build context to Docker daemon 1.024kB Step 1/9 : FROM python:3.9-slim ---> 7f5b6ccd03e9 Step 2/9 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 64b5d0e40a22 Step 3/9 : RUN mkdir /code ---> Using cache ---> 4d8c638f2b6c Step 4/9 : WORKDIR /code ---> Using cache ---> e69c02a028cd Step 5/9 : COPY requirements.txt /code/ ---> Using cache ---> 8f0f3e0f2d8c Step 6/9 : RUN pip install -r requirements.txt ---> Using cache ---> 0f7b497d81ed Step 7/9 : COPY . /code/ ---> Using cache ---> c0a8e9a32b16 Step 8/9 : EXPOSE 8000 ---> Using cache ---> a1d36a4a2da4 Step 9/9 : CMD ["gunicorn", "django_docker.wsgi", "--bind", "0.0.0.0:8000"] ---> Using cache ---> f7f3c0418a1d Successfully built f7f3c0418a1d Successfully tagged registry.heroku.com/django-docker-app/web:latest === Pushing web (Dockerfile) The push refers to repository [registry.heroku.com/django-docker-app/web] f7f3c0418a1d: Pushed latest: digest: sha256:6cbbf22cf6aa60e0343e6d8e7c4c2eeb2e cb8fd5e82a42dfe5f4aeeb15af89ec size: 528 Your image has been successfully pushed. You can now release it with the 'container:release' command.


이는 Docker 이미지를 빌드하고 Heroku에 푸시했음을 의미합니다.


- heroku container:release web -a django-docker-app Docker 이미지를 Heroku 앱에 릴리스합니다. 다음과 같은 내용이 표시됩니다.


 Releasing images web to django-docker-app... done


이는 Docker 이미지를 Heroku 앱에 출시했음을 의미합니다.


- Heroku 앱에서 데이터베이스 마이그레이션을 실행하려면 heroku run python manage.py migrate -a django-docker-app 입력하세요. 그러면 PostgreSQL 데이터베이스에서 Django 프로젝트에 필요한 테이블과 인덱스가 생성됩니다. 다음과 같은 내용이 표시됩니다.


 Running python manage.py migrate on ⬢ django-docker-app... up, run.1234 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, polls Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK


이는 Heroku 앱에서 데이터베이스 마이그레이션을 실행했음을 의미합니다.


- heroku open -a django-docker-app 입력하여 웹 브라우저에서 배포된 웹 애플리케이션을 엽니다. Heroku에서 실행되는 Django 프로젝트를 볼 수 있습니다.


heroku 명령을 사용하여 Django 프로젝트를 Heroku에 성공적으로 배포했습니다. 이제 웹 애플리케이션을 즐기고 다른 사람들과 공유할 수 있습니다.

결론

이 자습서에서는 Docker, Django 및 Heroku를 사용하여 Django 애플리케이션을 Docker화하고 배포하는 방법을 배웠습니다. Docker가 애플리케이션을 위한 격리되고 재현 가능한 환경을 만드는 데 어떻게 도움이 되는지, 그리고 Heroku가 배포 프로세스를 단순화하는 방법을 살펴보았습니다.


또한 Docker Compose를 사용하여 여러 컨테이너와 서비스를 관리하는 방법과 다양한 환경에 맞게 Django 설정을 구성하는 방법도 배웠습니다.


Django 애플리케이션을 Dockerizing하고 배포하면 다음과 같은 많은 이점을 얻을 수 있습니다.


- 더 빠른 개발 및 테스트 주기

- 더 쉬운 협업 및 코드 공유

- 플랫폼 전반에 걸쳐 일관되고 안정적인 성능

- 리소스의 확장성과 유연성

- 종속성의 보안 및 격리


다음 읽기: CI/CD는 빠르고 안정적인 소프트웨어 제공에 필수적입니다. 효율성을 극대화하기 위해 CI/CD 파이프라인을 최적화하려면 올바른 도구를 선택하고, 워크플로를 간소화하고, 자동화된 테스트 및 QA를 사용하고, 빌드를 병렬화하고, 모니터링 및 피드백 루프를 사용하고, 보안 검사를 수행하고, 파이프라인을 지속적으로 개선하세요. 자세히 알아보기

더 읽어보기: DockerCon 2023에서 우리가 배운 모든 것 더 읽기

추가 리소스

- Docker 문서 : 가이드, 튜토리얼, 참조 자료 등을 찾을 수 있는 Docker 공식 문서입니다.


- Django 문서 : Django 공식 문서로, 주제, 사용법 가이드, 참조 자료 등을 찾을 수 있습니다.