ruby3.0 rails6.1 postgresql + redis docker 환경 구축
8183 단어 docker-compose도커Rails
당연히 최신 루비가되지만,,,
redis는 덤,
자신은 sidekiq에 사용하기 때문에 넣어 두었습니다.
필요하지 않으면 지우십시오.
디렉토리 구조
app
├─ Dockerfile
├─ Gemfile
├─ Gemfile.lock
└─ docker-compose.yml
각 파일의 내용
Dockerfile
FROM ruby:latest
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update -qq && apt-get install -y \
nodejs \
yarn \
imagemagick \
build-essential \
libpq-dev \
postgresql-client
WORKDIR /app
COPY Gemfile Gemfile.lock /app/
RUN bundle install
docker-compose.yml
version: '3'
volumes:
db-data:
redis:
bundle:
node_modules:
services:
web:
build: .
command: >
bash -c "rm -f tmp/pids/server.pid &&
bundle exec rails s -p 3000 -b '0.0.0.0'"
ports:
- '3000:3000'
volumes:
- '.:/app'
- 'bundle:/usr/local/bundle:cached'
- 'node_modules:/app/node_modules'
- '/app/vendor'
- '/app/tmp'
- '/app/log'
- '/app/.git'
environment:
- 'DATABASE_PASSWORD=postgres'
tty: true
stdin_open: true
depends_on:
- db
- redis
links:
- db
db:
image: postgres
environment:
- 'POSTGRES_USER=postgres'
- 'POSTGRES_PASSWORD=postgres'
volumes:
- 'db-data:/var/lib/postgresql/data'
redis:
image: redis:latest
command: redis-server
ports:
- 6379:6379
volumes:
- redis:/data
node_modules,vendor,tem,log,.git은 up 가속화를 위해 볼륨을 만들었습니다.
Gemfile
source 'https://rubygems.org'
gem 'rails', '~> 6.1'
Gemfile.lock
# 何も書かないでね
앱 시작
app 디렉토리에서 다음 명령으로 app 시작
rspec 사용하기 때문에 skip-test 하고 있습니다만 저희 근처는 기호로!
--force는 강제 덮어쓰기,
--no-deps는 연결된 서비스를 시작하지 않는 설정입니다.
--webpacker는 webpacker:install을 제공합니다.
docker-compose run web rails new . --force --no-deps --database=postgresql --skip-test --webpacker
webpacker를 설치할 수있었습니다!
되면 성공입니다.
이제 database.yml을 수정해 보겠습니다.
database.yml
default: &default
adapter: postgresql
encoding: unicode
host: db
user: postgres
port: 5432
password: <%= ENV.fetch("DATABASE_PASSWORD") %>
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: product_register_development
test:
<<: *default
database: product_register_test
production:
<<: *default
database: product_register_production
username: product_register
password: <%= ENV['PRODUCT_REGISTER_DATABASE_PASSWORD'] %>
수정이 끝나면 db:create 실행
docker-compose run web rake db:create
create 할 수 있었습니다!
그렇다면
docker-compose up
에서 container와 server 시작 성공입니다!
docker-compose exec web bash
에서 컨테이너 들어가서 확인해 봅시다.
※ 나는 test_app라는 이름으로 앱을 만들었습니다.
CMD라든지 ENTRYPOINT라든지 command:라든지 volume:라든지 container_name:라든지 좋아하게 커스터마이즈 해 주세요.
매일 정진.
Reference
이 문제에 관하여(ruby3.0 rails6.1 postgresql + redis docker 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mk_0409/items/069e05ed1b00ab7d4a94텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)