f96q/kptboard

View on GitHub
Dockerfile

Summary

Maintainability
Test Coverage
FROM alpine:3.7

ENV RAILS_ENV="production" \
    NODE_ENV="production" \
    NPM_CONFIG_PRODUCTION="false" \
    RUNTIME_PACKAGES="bash ruby ruby-irb ruby-json ruby-rake ruby-bigdecimal ruby-io-console ruby-dev nodejs yarn libxml2-dev libxslt-dev mariadb-client-libs tzdata py-pip" \
    DEV_PACKAGES="build-base mariadb-dev"

RUN apk add --update --no-cache $RUNTIME_PACKAGES && \
    pip install --no-cache-dir awscli && \
    mkdir /app

WORKDIR /app

COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock

RUN apk add --update --virtual build-dependencies --no-cache $DEV_PACKAGES && \
    gem install bundler --no-document && \
    bundle config build.nokogiri --use-system-libraries && \
    bundle install --without development test heroku && \
    apk del build-dependencies

COPY package.json /app/package.json
COPY yarn.lock /app/yarn.lock

RUN yarn install --network-concurrency 1 && \
    yarn cache clean

COPY . /app

RUN yarn run build && \
    bundle exec rake assets:precompile DATABASE_URL=nulldb://localhost SECRET_KEY_BASE=secret_key_base

EXPOSE 3000
ENTRYPOINT ["./docker-entrypoint.sh"]
CMD ["bundle", "exec", "puma", "-C", "config/puma.rb"]