> 백엔드 개발 > 파이썬 튜토리얼 > 개발 중인 Docker: 에피소드 3

개발 중인 Docker: 에피소드 3

Mary-Kate Olsen
풀어 주다: 2025-01-10 07:58:41
원래의
752명이 탐색했습니다.

Docker in development: Episode 3

지난 호에서는 Ruby on Rails 애플리케이션을 컨테이너화하는 방법을 설명했습니다. 이번 호에서는 컨테이너에서 일상적인 작업을 수행하는 방법을 살펴보겠습니다.

Rake 작업 및 Rails 명령 실행

Rake 작업을 실행하는 것은 쉽습니다. 이미지를 빌드한 후 docker-compose를 사용하여 이미지에서 명령을 실행할 수 있습니다. 예를 들어 애플리케이션의 경로를 보려면 다음을 수행하세요.

<code class="language-bash">$ docker-compose run web rails routes</code>
로그인 후 복사

마찬가지로 데이터베이스를 생성하려면 데이터를 마이그레이션하고 채우세요.

<code class="language-bash">$ docker-compose run web rails db:create db:migrate db:seed</code>
로그인 후 복사

테스트 도구 모음을 실행하려면 테스트 데이터베이스를 만들어야 합니다.

<code class="language-bash">$ docker-compose run web rails db:create db:migrate RAILS_ENV=test</code>
로그인 후 복사

그런 다음 테스트 모음을 실행합니다(rake가 기본적으로 rake 테스트를 실행한다고 가정).

<code class="language-bash">$ docker-compose run web rake</code>
로그인 후 복사

팁: 사용자 정의 스크립트/별칭 만들기

나는 docker-compose run web rails ...을 하루에 수백 번 실행하고 작업을 더 쉽게 하기 위해 이 스크립트를 $PATH:

안에 넣습니다.
<code class="language-bash">#!/bin/bash
docker-compose run web rails "$@"</code>
로그인 후 복사

이 스크립트는 docker-compose.yml 파일에 웹 서비스가 있다고 가정합니다. 그렇지 않으면 작동하지 않습니다.

기타 작업 수행

지금까지의 모든 명령은 매우 간단하고 간단하므로 웹 서비스에서 실행하기만 하면 됩니다. 그렇다면 기존 데이터베이스를 컨테이너의 데이터베이스에 로드하는 등 좀 더 어려운 작업은 어떻게 합니까? 이것은 제가 알아내는 데 조금 더 시간이 걸린 작업 중 하나였습니다.

PostgreSQL에서는 덤프 파일 형식에 따라 두 가지 방법으로 이를 수행할 수 있습니다. 예전에는 --format=c 덤프와 일반 덤프를 처리해야 했습니다.

c 형식의 PostgreSQL 덤프가 포함된 latest.dump 파일이 있고 이를 (실행 중인) 컨테이너에 로드하려는 경우 먼저 컨테이너 ID를 찾아야 합니다. 다음 명령을 실행하면 됩니다:

<code class="language-bash">$ docker container ls</code>
로그인 후 복사

또는

<code class="language-bash">$ docker ps</code>
로그인 후 복사

컨테이너 ID가 있으면(이 예에서는 80f8041db4b4을 사용함) 다음 명령을 실행하여 컨테이너의 덤프를 복원할 수 있습니다.

<code class="language-bash">$ docker exec -i 80f8041db4b4 pg_restore -d app_development -U postgres</code>
로그인 후 복사

정기 덤프(예: latest.sql)가 있는 경우 다음을 사용하여 복원할 수 있습니다.

<code class="language-bash">$ docker exec -i 80f8041db4b4 psql -d app_development -U postgres</code>
로그인 후 복사

docker-compose를 사용하면 작업이 더 쉬워집니다.

<code class="language-bash">$ docker-compose exec -T db pg_restore -d app_development -U postgres</code>
로그인 후 복사

모든 것이 컨테이너화되어 있습니다!

저는 Elastic Beanstalk를 많이 사용합니다. 저는 주로 Homebrew를 사용하여 설치하지만, Python, SQLite 등과 같은 자체 종속성도 많이 설치합니다. 나는 내 시스템에 이 모든 것을 원하지 않습니다. 특히 Python 버전에 항상 문제가 있기 때문입니다. 대신 컨테이너화합니다. docker-awsebcli.

다음호도 기대해주세요!

위 내용은 개발 중인 Docker: 에피소드 3의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿