Rails 가이드 - Docker 추가 - 2부
프로덕션 준비가 된 Rails 애플리케이션을 만드는 방법을 가르치는 시리즈의 두 번째 기사입니다. 이 문서에서는 docker 및 docker compose를 구성합니다.
도커 구성
가장 먼저 해야 할 일은 응용 프로그램의 루트 경로에 Dockerfile
라는 파일을 만드는 것입니다.
다음 스니펫에는 파일 콘텐츠가 포함되어 있습니다.
FROM ruby:3.1.2-alpine3.16
RUN apk --update add postgresql-dev postgresql-client build-base tzdata libxslt-dev libxml2-dev
RUN mkdir /app
WORKDIR /app
이 파일은 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 이미지를 생성합니다. 이 이미지 도커를 만들려면 다음 단계를 따르세요.
FROM ruby:3.1.2-alpine3.16
이 줄은 docker가 dockerhub에서 다음 이미지를 다운로드하고 이를 기반으로 사용하여 다음 명령을 실행하도록 지정합니다.
RUN apk --update add postgresql-dev postgresql-client build-base tzdata libxslt-dev libxml2-dev
이 지침은 docker install에 다음 종속성을 알려줍니다.
FROM ruby:3.1.2-alpine3.16
RUN apk --update add postgresql-dev postgresql-client build-base tzdata libxslt-dev libxml2-dev
RUN mkdir /app
WORKDIR /app
RUN mkdir /app
"/app"이라는 폴더를 만듭니다.
WORKDIR /app
도커에게 "/path"폴더가 애플리케이션의 기본 폴더임을 알립니다.
도커 작성 구성
docker-compose를 구성하기 위해 가장 먼저 해야 할 일은 애플리케이션의 루트 경로에 docker-compose.yml
라는 파일을 생성하는 것입니다. 이 파일에는 다음 내용이 있어야 합니다.
version: '3.9'
services:
db:
image: postgres:14.5-alpine
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
volumes:
- .:/app
tty: true
ports:
- "3000:3000"
depends_on:
- db
도커 실행
이제 모든 것이 구성되었으므로 다음 명령을 실행하여 컨테이너를 생성합니다.
docker-compose up -d
이 명령은 두 컨테이너를 모두 생성하고 실행합니다.
다음 특공대를 실행하여 모든 것이 정상인지 확인할 수 있습니다.
docker ps
출력은 다음과 같아야 합니다.
애플리케이션 컨테이너 안으로 들어가려면 container_id가 필요합니다. container_id를 식별하는 방법은 다음과 같습니다.
이제 다음 명령을 실행하여 컨테이너 내부로 이동합니다.
docker exec -it <container_id> sh
데이터베이스 설정
Docker 환경을 계산하기 위해 데이터베이스 구성을 업데이트해야 하며 다음 내용으로 변경해야 합니다config/database.yml
.
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: <%= ENV.fetch("DATABASE_HOST", "db") %>
user: <%= ENV.fetch("DATABASE_USERNAME", "postgres") %>
password: <%= ENV.fetch("DATABASE_PASSWORD", "password") %>
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: <%= ENV.fetch("DATABASE_NAME", "app_production") %>
데이터베이스를 설정하려면 다음 명령을 실행해야 합니다.
rails db:drop
rails db:create
rails db:migrate
서버 실행
다음 명령을 실행하여 서버를 시작하여 모든 것이 정상인지 확인할 수 있습니다.
rails s -b 0.0.0.0
모든 것이 정상이면 다음과 같이 표시됩니다.
모든 코드 변경 사항을 볼 수 있습니다here.
Reference
이 문제에 관하여(Rails 가이드 - Docker 추가 - 2부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/augusto_queirantes/rails-guide-adding-docker-part-2-1ldk
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: '3.9'
services:
db:
image: postgres:14.5-alpine
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
volumes:
- .:/app
tty: true
ports:
- "3000:3000"
depends_on:
- db
이제 모든 것이 구성되었으므로 다음 명령을 실행하여 컨테이너를 생성합니다.
docker-compose up -d
이 명령은 두 컨테이너를 모두 생성하고 실행합니다.
다음 특공대를 실행하여 모든 것이 정상인지 확인할 수 있습니다.
docker ps
출력은 다음과 같아야 합니다.
애플리케이션 컨테이너 안으로 들어가려면 container_id가 필요합니다. container_id를 식별하는 방법은 다음과 같습니다.
이제 다음 명령을 실행하여 컨테이너 내부로 이동합니다.
docker exec -it <container_id> sh
데이터베이스 설정
Docker 환경을 계산하기 위해 데이터베이스 구성을 업데이트해야 하며 다음 내용으로 변경해야 합니다config/database.yml
.
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: <%= ENV.fetch("DATABASE_HOST", "db") %>
user: <%= ENV.fetch("DATABASE_USERNAME", "postgres") %>
password: <%= ENV.fetch("DATABASE_PASSWORD", "password") %>
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: <%= ENV.fetch("DATABASE_NAME", "app_production") %>
데이터베이스를 설정하려면 다음 명령을 실행해야 합니다.
rails db:drop
rails db:create
rails db:migrate
서버 실행
다음 명령을 실행하여 서버를 시작하여 모든 것이 정상인지 확인할 수 있습니다.
rails s -b 0.0.0.0
모든 것이 정상이면 다음과 같이 표시됩니다.
모든 코드 변경 사항을 볼 수 있습니다here.
Reference
이 문제에 관하여(Rails 가이드 - Docker 추가 - 2부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/augusto_queirantes/rails-guide-adding-docker-part-2-1ldk
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: <%= ENV.fetch("DATABASE_HOST", "db") %>
user: <%= ENV.fetch("DATABASE_USERNAME", "postgres") %>
password: <%= ENV.fetch("DATABASE_PASSWORD", "password") %>
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: <%= ENV.fetch("DATABASE_NAME", "app_production") %>
rails db:drop
rails db:create
rails db:migrate
다음 명령을 실행하여 서버를 시작하여 모든 것이 정상인지 확인할 수 있습니다.
rails s -b 0.0.0.0
모든 것이 정상이면 다음과 같이 표시됩니다.
모든 코드 변경 사항을 볼 수 있습니다here.
Reference
이 문제에 관하여(Rails 가이드 - Docker 추가 - 2부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/augusto_queirantes/rails-guide-adding-docker-part-2-1ldk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)