지난 호에서는 Ruby on Rails 애플리케이션을 컨테이너화하는 방법을 설명했습니다. 이번 호에서는 컨테이너에서 일상적인 작업을 수행하는 방법을 살펴보겠습니다.
Rake 작업 및 Rails 명령 실행
Rake 작업을 실행하는 것은 쉽습니다. 이미지를 빌드한 후 docker-compose를 사용하여 이미지에서 명령을 실행할 수 있습니다. 예를 들어 애플리케이션의 경로를 보려면 다음을 수행하세요.
$ docker-compose run web rails routes
마찬가지로 데이터베이스를 생성하려면 데이터를 마이그레이션하고 채우세요.
$ docker-compose run web rails db:create db:migrate db:seed
테스트 도구 모음을 실행하려면 테스트 데이터베이스를 만들어야 합니다.
$ docker-compose run web rails db:create db:migrate RAILS_ENV=test
그런 다음 테스트 모음을 실행합니다(rake가 기본적으로 rake 테스트를 실행한다고 가정).
$ docker-compose run web rake
팁: 사용자 정의 스크립트/별칭 만들기
나는 docker-compose run web rails ...
을 하루에 수백 번 실행하고 작업을 더 쉽게 하기 위해 이 스크립트를 $PATH
:
#!/bin/bash docker-compose run web rails "$@"
이 스크립트는 docker-compose.yml
파일에 웹 서비스가 있다고 가정합니다. 그렇지 않으면 작동하지 않습니다.
기타 작업 수행
지금까지의 모든 명령은 매우 간단하고 간단하므로 웹 서비스에서 실행하기만 하면 됩니다. 그렇다면 기존 데이터베이스를 컨테이너의 데이터베이스에 로드하는 등 좀 더 어려운 작업은 어떻게 합니까? 이것은 제가 알아내는 데 조금 더 시간이 걸린 작업 중 하나였습니다.
PostgreSQL에서는 덤프 파일 형식에 따라 두 가지 방법으로 이를 수행할 수 있습니다. 예전에는 --format=c
덤프와 일반 덤프를 처리해야 했습니다.
c 형식의 PostgreSQL 덤프가 포함된 latest.dump
파일이 있고 이를 (실행 중인) 컨테이너에 로드하려는 경우 먼저 컨테이너 ID를 찾아야 합니다. 다음 명령을 실행하면 됩니다:
$ docker container ls
또는
$ docker ps
컨테이너 ID가 있으면(이 예에서는 80f8041db4b4
을 사용함) 다음 명령을 실행하여 컨테이너의 덤프를 복원할 수 있습니다.
$ docker exec -i 80f8041db4b4 pg_restore -d app_development -U postgres
정기 덤프(예: latest.sql
)가 있는 경우 다음을 사용하여 복원할 수 있습니다.
$ docker exec -i 80f8041db4b4 psql -d app_development -U postgres
docker-compose를 사용하면 작업이 더 쉬워집니다.
$ docker-compose exec -T db pg_restore -d app_development -U postgres
모든 것이 컨테이너화되어 있습니다!
저는 Elastic Beanstalk를 많이 사용합니다. 저는 주로 Homebrew를 사용하여 설치하지만, Python, SQLite 등과 같은 자체 종속성도 많이 설치합니다. 나는 내 시스템에 이 모든 것을 원하지 않습니다. 특히 Python 버전에 항상 문제가 있기 때문입니다. 대신 컨테이너화합니다. docker-awsebcli
.
다음호도 기대해주세요!
위 내용은 개발 중인 Docker: 에피소드 3의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Tomergelistsinpython, youcanusethe operator, extendmethod, listcomprehension, oritertools.chain, 각각은 각각의 지위를 불러 일으킨다

Python 3에서는 다양한 방법을 통해 두 개의 목록을 연결할 수 있습니다. 1) 작은 목록에 적합하지만 큰 목록에는 비효율적입니다. 2) 메모리 효율이 높지만 원래 목록을 수정하는 큰 목록에 적합한 확장 방법을 사용합니다. 3) 원래 목록을 수정하지 않고 여러 목록을 병합하는 데 적합한 * 운영자 사용; 4) 메모리 효율이 높은 대형 데이터 세트에 적합한 itertools.chain을 사용하십시오.

join () 메소드를 사용하는 것은 Python의 목록에서 문자열을 연결하는 가장 효율적인 방법입니다. 1) join () 메소드를 사용하여 효율적이고 읽기 쉽습니다. 2)주기는 큰 목록에 비효율적으로 운영자를 사용합니다. 3) List Comprehension과 Join ()의 조합은 변환이 필요한 시나리오에 적합합니다. 4) READE () 방법은 다른 유형의 감소에 적합하지만 문자열 연결에 비효율적입니다. 완전한 문장은 끝납니다.

pythonexecutionissprocessoftransformingpythoncodeintoExecutableInstructions.1) the -interreadsTheCode, ConvertingItintoByTecode, thethepythonVirtualMachine (pvm)을 실행합니다

Python의 주요 특징은 다음과 같습니다. 1. 구문은 간결하고 이해하기 쉽고 초보자에게 적합합니다. 2. 개발 속도 향상, 동적 유형 시스템; 3. 여러 작업을 지원하는 풍부한 표준 라이브러리; 4. 광범위한 지원을 제공하는 강력한 지역 사회와 생태계; 5. 스크립팅 및 빠른 프로토 타이핑에 적합한 해석; 6. 다양한 프로그래밍 스타일에 적합한 다중-파라 디그 지원.

Python은 해석 된 언어이지만 편집 프로세스도 포함됩니다. 1) 파이썬 코드는 먼저 바이트 코드로 컴파일됩니다. 2) 바이트 코드는 Python Virtual Machine에 의해 해석되고 실행됩니다. 3)이 하이브리드 메커니즘은 파이썬이 유연하고 효율적이지만 완전히 편집 된 언어만큼 빠르지는 않습니다.

USEAFORLOOPHENTERATINGOVERASERASERASPECIFICNUMBEROFTIMES; USEAWHILLOOPWHENTINUTIMONDITINISMET.FORLOOPSAREIDEALFORKNOWNSEDINGENCENCENS, WHILEWHILELOOPSSUITSITUATIONS WITHERMINGEDERITERATIONS.

Pythonloopscanleadtoerrors likeinfiniteloops, modifyinglistsdizeration, off-by-by-byerrors, zero-indexingissues, andnestedloopineficiencies.toavoidthese : 1) aing'i


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는