rails+postgresql의 Docker 구축을 공식대로 했는데 아무것도 가지 않았기 때문에 일부 수정했다
6540 단어 PostgreSQLdocker-compose도커Rails6
전제
macOS Catalina
Mac용 Docker 2.3.0.5
공식
Quickstart: Compose and Rails
코드
Dockerfile
공식대로의 기술로 해 가면 갑자기 여러가지 에러가 되었기 때문에, 구그는 부족한 것 추가했습니다.
그 외 공식 루비는 버전 2.5이지만 2020/11/1 최신 2.7.2로 만들었습니다.
공식
FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
↓
FROM ruby:2.7.2
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
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client yarn
# 以下同じ
Gemfile
공식적으로 rails의 버전은 5입니다만, 2020/11/1 최신의 6으로 했습니다
공식
source 'https://rubygems.org'
gem 'rails', '~>5'
↓
source 'https://rubygems.org'
gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
docker-compose.yml
공식이나 다른 기사대로 해도 왠지 DB가 영속화되지 않고 마음이 부러졌습니다만, 이쪽의 방법으로 해결했습니다.
htps : // 기주 b. 코 m / 두 c r / 코 m 포세 / 이스에 s / 5012 # 이스에 코멘 t-316518185
(공식) docker-compose.yml
version: "3"
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
↓
docker-compose.yml
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
PGDATA: /var/postgres_data # 追加
volumes:
- ./tmp/db:/var/postgres_data # 修正
ports:
- "5432:5432"
web: # 同じ
※프런트를 React등의 port가 3000의 것으로 작성하는 경우는, 경합을 피하기 위해(때문에)
ports: "3001:3000"
하여 rails 서버에 접속할 때는 3001을 지정합니다.(or 앞면의 포트 변경)
절차
기본적인 순서는 이쪽의 동영상이 알기 쉬웠으므로 참고로 해 주세요.
【rails 환경 구축】docker + rails + mysql 로 환경 구축(초보자라도 30분에 완료!)
※이쪽의 동영상은 postgresql이 아닌 mysql에서 rails5, ruby2.5입니다
DB 연결
※컨테이너 기동하고 있지 않으면 연결되지 않습니다
Name
자유User
docker-compose.yml의 POSTGRES_USER에 기술 된 것을 설정Password
docker-compose.yml의 POSTGRES_PASSWORD에 기술 된 것을 설정Database
myapp/config/database.yml
의 development:database
에 기술되고 있는 것을 설정
Reference
이 문제에 관하여(rails+postgresql의 Docker 구축을 공식대로 했는데 아무것도 가지 않았기 때문에 일부 수정했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pg_yamaton/items/432b864a292a55de8868텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)