FROM ruby:3.0.2-slim
WORKDIR /app
RUN apt-get update
RUN apt-get install -y build-essential apt-utils libpq-dev default-mysql-client default-libmysqlclient-dev
COPY Gemfile Gemfile.lock ./
RUN gem install bundler && RAILS_ENV=production bundle install --jobs 20 --retry 5
ENV RAILS_ENV=production
COPY . ./
ENTRYPOINT ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"]
Ruby on Rails 파일을 Docker로 배포 해본다.
RAILS_ENV에 test, production, development 중에서 적어주면 된다.
나는 최종 배포를 대상으로 한 것이므로 production을 적었다.
추가적으로, default-mysql-client와 default-libmysqlclient-dev는 gem 라이브러리 중에서 Mysql을 사용할 경우 적는 것이다. 다른 DB를 사용한다면 다른 것을 적어야 한다.
여기서 내가 시간 허비를 많이 했는데, 여러 글들을 찾아봐도 mysql-client를 설치하라고 했다. 하지만, 그렇게 돌려보면 docker build하는 과정에서 오류가 날 것이다. Base Image Ruby Slim에서는 mysql-client가 아닌, default-mysql-client로 설치해줘야 된다.
'BackEnd > 배포' 카테고리의 다른 글
[배포] Route 53 + Nginx + Certbot으로 Https 적용하기 (0) | 2024.06.23 |
---|---|
[배포] "외국민" 서비스 배포 과정 - (1) (0) | 2024.05.04 |
[배포] Azure 발음 평가 사용시 SpeechConfig 초기화 오류 (1) | 2024.05.01 |
[배포] Docker로 Spring 서버 배포하기 (1) | 2024.04.07 |