forked from External/greenlight
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM ruby:2.5.1-alpine AS base
 | 
						|
 | 
						|
# Set a variable for the install location.
 | 
						|
ARG RAILS_ROOT=/usr/src/app
 | 
						|
# Set Rails environment.
 | 
						|
ENV RAILS_ENV production
 | 
						|
ENV BUNDLE_APP_CONFIG="$RAILS_ROOT/.bundle"
 | 
						|
 | 
						|
# Make the directory and set as working.
 | 
						|
RUN mkdir -p $RAILS_ROOT
 | 
						|
WORKDIR $RAILS_ROOT
 | 
						|
 | 
						|
ARG BUILD_PACKAGES="build-base curl-dev git"
 | 
						|
ARG DEV_PACKAGES="postgresql-dev sqlite-libs sqlite-dev yaml-dev zlib-dev nodejs yarn"
 | 
						|
ARG RUBY_PACKAGES="tzdata"
 | 
						|
 | 
						|
# Install app dependencies.
 | 
						|
RUN apk update \
 | 
						|
    && apk upgrade \
 | 
						|
    && apk add --update --no-cache $BUILD_PACKAGES $DEV_PACKAGES $RUBY_PACKAGES
 | 
						|
 | 
						|
COPY Gemfile* ./
 | 
						|
COPY Gemfile Gemfile.lock $RAILS_ROOT/
 | 
						|
 | 
						|
RUN bundle config --global frozen 1 \
 | 
						|
    && bundle install --deployment --without development:test:assets -j4 --path=vendor/bundle \
 | 
						|
    && rm -rf vendor/bundle/ruby/2.5.0/cache/*.gem \
 | 
						|
    && find vendor/bundle/ruby/2.5.0/gems/ -name "*.c" -delete \
 | 
						|
    && find vendor/bundle/ruby/2.5.0/gems/ -name "*.o" -delete
 | 
						|
 | 
						|
# Adding project files.
 | 
						|
COPY . .
 | 
						|
 | 
						|
# Remove folders not needed in resulting image
 | 
						|
RUN rm -rf tmp/cache spec
 | 
						|
 | 
						|
############### Build step done ###############
 | 
						|
 | 
						|
FROM ruby:2.5.1-alpine
 | 
						|
 | 
						|
# Set a variable for the install location.
 | 
						|
ARG RAILS_ROOT=/usr/src/app
 | 
						|
ARG PACKAGES="tzdata curl postgresql-client sqlite-libs yarn nodejs bash"
 | 
						|
 | 
						|
ENV RAILS_ENV=production
 | 
						|
ENV BUNDLE_APP_CONFIG="$RAILS_ROOT/.bundle"
 | 
						|
 | 
						|
WORKDIR $RAILS_ROOT
 | 
						|
 | 
						|
RUN apk update \
 | 
						|
    && apk upgrade \
 | 
						|
    && apk add --update --no-cache $PACKAGES
 | 
						|
 | 
						|
 | 
						|
COPY --from=base $RAILS_ROOT $RAILS_ROOT
 | 
						|
 | 
						|
# Expose port 80.
 | 
						|
EXPOSE 80
 | 
						|
 | 
						|
# Sets the footer of greenlight application with current build version
 | 
						|
ARG version_code
 | 
						|
ENV VERSION_CODE=$version_code
 | 
						|
 | 
						|
# Start the application.
 | 
						|
CMD ["bin/start"]
 |