创建一个使用Ruby 2.6、MySQL、Webpacker和alpine组成的Dockerfile
这是从博客转移的内容。
开发环境的Dockerfile如下:
FROM ruby:2.6.0-alpine3.8
ENV APP_ROOT /usr/src/app
WORKDIR $APP_ROOT
RUN apk add --no-cache alpine-sdk \
nodejs-current \
nodejs-npm \
yarn \
mysql-client \
mysql-dev \
python2 \
tzdata
使用Rails 5.2 + Docker,并在构建镜像时以动态方式将RAILS_MASTER_KEY添加进入的方法,本番环境的Dockerfile写入如下。
FROM ruby:2.6.0-alpine3.8
ENV RAILS_ENV=production
ENV APP_ROOT /usr/src/app
ARG RAILS_MASTER_KEY
ENV RAILS_MASTER_KEY ${RAILS_MASTER_KEY}
WORKDIR $APP_ROOT
RUN apk add --no-cache alpine-sdk \
nodejs-current \
nodejs-npm \
yarn \
mysql-client \
mysql-dev \
python2 \
tzdata
COPY Gemfile $APP_ROOT
COPY Gemfile.lock $APP_ROOT
RUN bundle install --jobs=4
COPY . $APP_ROOT
RUN bin/yarn install
RUN bin/rails webpacker:compile
VOLUME $APP_ROOT/public
VOLUME $APP_ROOT/tmp