-
-
Save kevinmcalear/cb6fd923a861fd29d516fc58bbd6d4be to your computer and use it in GitHub Desktop.
Cloud Build Dockerfile (Photo Album on Google Cloud Run)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Leverage the official Ruby image from Docker Hub | |
# https://hub.docker.com/_/ruby | |
FROM ruby:2.6 | |
# Install recent versions of nodejs (10.x) and yarn pkg manager | |
# Needed to properly pre-compile Rails assets | |
RUN (curl -sL https://deb.nodesource.com/setup_10.x | bash -) && apt-get update && apt-get install -y nodejs | |
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 && apt-get install -y yarn | |
# Install MySQL client (needed for the connection to Google CloudSQL instance) | |
RUN apt-get install -y mysql-client | |
# Install production dependencies (Gems installation in | |
# local vendor directory) | |
WORKDIR /usr/src/app | |
COPY Gemfile Gemfile.lock ./ | |
ENV BUNDLE_FROZEN=true | |
RUN bundle install | |
# Copy application code to the container image. | |
# Note: files listed in .gitignore are not copied | |
# (e.g.secret files) | |
COPY . . | |
# Pre-compile Rails assets (master key needed) | |
RUN RAILS_ENV=production bundle exec rake assets:precompile | |
# Set Google App Credentials environment variable with Service Account | |
ENV GOOGLE_APPLICATION_CREDENTIALS=/usr/src/app/config/photo_album_runner.key | |
# Setup Rails DB password passed on docker command line (see Cloud Build file) | |
ARG DB_PWD | |
ENV DATABASE_PASSWORD=${DB_PWD} | |
# For now we don't have a Nginx/Apache frontend so tell | |
# the Puma HTTP server to serve static content | |
# (e.g. CSS and Javascript files) | |
ENV RAILS_SERVE_STATIC_FILES=true | |
# Redirect Rails log to STDOUT for Cloud Run to capture | |
ENV RAILS_LOG_TO_STDOUT=true | |
# Designate the initial sript to run on container startup | |
RUN chmod +x /usr/src/app/entrypoint.sh | |
ENTRYPOINT ["/usr/src/app/entrypoint.sh"] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment