forked from External/greenlight
		
	GRN2-241: Switched Docker base image to Alpine (#853)
* Switched to alpine image * Switch Docker base image to alpine * Removed uneeded code * Slimmed it down even further
This commit is contained in:
		
				
					committed by
					
						 farhatahmad
						farhatahmad
					
				
			
			
				
	
			
			
			
						parent
						
							c13a83a3f3
						
					
				
				
					commit
					734f7a757e
				
			
							
								
								
									
										64
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,34 +1,60 @@ | ||||
| FROM ruby:2.5 | ||||
| FROM ruby:2.5.1-alpine AS base | ||||
|  | ||||
| # Install app dependencies. | ||||
| RUN apt-get update -qq && apt-get install -y build-essential libpq-dev curl | ||||
|  | ||||
| ADD https://dl.yarnpkg.com/debian/pubkey.gpg /tmp/yarn-pubkey.gpg | ||||
|  | ||||
| RUN apt-key add /tmp/yarn-pubkey.gpg && rm /tmp/yarn-pubkey.gpg && \ | ||||
| echo 'deb http://dl.yarnpkg.com/debian/ stable main' > /etc/apt/sources.list.d/yarn.list &&  \ | ||||
| curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ | ||||
| apt-get update && apt-get install -y nodejs yarn | ||||
|  | ||||
| # Set an environment variable for the install location. | ||||
| ENV RAILS_ROOT /usr/src/app | ||||
| # 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 | ||||
|  | ||||
| # Set Rails environment. | ||||
| ENV RAILS_ENV production | ||||
| 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* ./ | ||||
| RUN bundle install --without development test --deployment --clean | ||||
| 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 . . | ||||
|  | ||||
| # Precompile assets | ||||
| RUN SECRET_KEY_BASE="$(bundle exec rake secret)" bundle exec rake assets:clean | ||||
| RUN SECRET_KEY_BASE="$(bundle exec rake secret)" bundle exec rake assets:precompile | ||||
| RUN SECRET_KEY_BASE="1" bin/rails assets:precompile | ||||
|  | ||||
| # Remove folders not needed in resulting image | ||||
| RUN rm -rf tmp/cache app/assets vendor/assets 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 postgresql-client sqlite-libs 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 | ||||
|   | ||||
							
								
								
									
										4
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Gemfile
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ gem 'uglifier', '>= 1.3.0' | ||||
| gem 'coffee-rails', '~> 4.2' | ||||
|  | ||||
| # See https://github.com/rails/execjs#readme for more supported runtimes | ||||
| gem 'mini_racer', platforms: :ruby | ||||
| # gem 'mini_racer', platforms: :ruby | ||||
|  | ||||
| # Use jquery as the JavaScript library | ||||
| gem 'jquery-rails', '~> 4.3.3' | ||||
| @@ -121,7 +121,7 @@ end | ||||
| gem 'remote_syslog_logger' | ||||
|  | ||||
| # Windows does not include zoneinfo files, so bundle the tzinfo-data gem | ||||
| gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] | ||||
| gem 'tzinfo-data' | ||||
|  | ||||
| gem 'coveralls', require: false | ||||
|  | ||||
|   | ||||
| @@ -153,7 +153,6 @@ GEM | ||||
|       railties (>= 3.2.16) | ||||
|     json (2.2.0) | ||||
|     jwt (2.2.1) | ||||
|     libv8 (7.3.492.27.1) | ||||
|     listen (3.0.8) | ||||
|       rb-fsevent (~> 0.9, >= 0.9.4) | ||||
|       rb-inotify (~> 0.9, >= 0.9.7) | ||||
| @@ -173,8 +172,6 @@ GEM | ||||
|     mimemagic (0.3.3) | ||||
|     mini_mime (1.0.2) | ||||
|     mini_portile2 (2.4.0) | ||||
|     mini_racer (0.2.6) | ||||
|       libv8 (>= 6.9.411) | ||||
|     minitest (5.11.3) | ||||
|     msgpack (1.3.0) | ||||
|     multi_json (1.13.1) | ||||
| @@ -326,6 +323,8 @@ GEM | ||||
|     turbolinks-source (5.2.0) | ||||
|     tzinfo (1.2.5) | ||||
|       thread_safe (~> 0.1) | ||||
|     tzinfo-data (1.2019.3) | ||||
|       tzinfo (>= 1.0.0) | ||||
|     uglifier (4.1.20) | ||||
|       execjs (>= 0.3.0, < 3) | ||||
|     unicode-display_width (1.6.0) | ||||
| @@ -369,7 +368,6 @@ DEPENDENCIES | ||||
|   jquery-ui-rails | ||||
|   listen (~> 3.0.5) | ||||
|   lograge | ||||
|   mini_racer | ||||
|   net-ldap | ||||
|   omniauth | ||||
|   omniauth-bn-launcher! | ||||
|   | ||||
| @@ -26,7 +26,7 @@ class ThemesController < ApplicationController | ||||
|     lighten_color = @settings.get_value("Primary Color Lighten") || Rails.configuration.primary_color_lighten_default | ||||
|     darken_color = @settings.get_value("Primary Color Darken") || Rails.configuration.primary_color_darken_default | ||||
|  | ||||
|     file_name = Rails.root.join('app', 'assets', 'stylesheets', 'utilities', '_primary_themes.scss') | ||||
|     file_name = Rails.root.join('lib', 'assets', '_primary_themes.scss') | ||||
|     @file_contents = File.read(file_name) | ||||
|  | ||||
|     # Include the variables and covert scss file to css | ||||
|   | ||||
| @@ -19,6 +19,4 @@ else | ||||
|   bundle exec rake db:schema:load | ||||
| fi | ||||
|  | ||||
| bundle exec rake assets:precompile | ||||
|  | ||||
| exec bundle exec puma -C config/puma.rb | ||||
|   | ||||
| @@ -143,5 +143,5 @@ Rails.application.configure do | ||||
|   config.active_record.dump_schema_after_migration = false | ||||
|  | ||||
|   # Set the relative url root for deployment to a subdirectory. | ||||
|   config.relative_url_root = ENV['RELATIVE_URL_ROOT'] || "/b" if ENV['RELATIVE_URL_ROOT'] != "/" | ||||
|   config.relative_url_root = ENV['RELATIVE_URL_ROOT'].present? ? ENV['RELATIVE_URL_ROOT'] : "/b" | ||||
| end | ||||
|   | ||||
| @@ -13,4 +13,4 @@ Rails.application.config.assets.version = '1.0' | ||||
| # Precompile additional assets. | ||||
| # application.js, application.css, and all non-JS/CSS in the app/assets | ||||
| # folder are already added. | ||||
| Rails.application.config.assets.precompile += %w(pickr.min.js monolith.min.scss) | ||||
| Rails.application.config.assets.precompile += %w(_primary_theme.scss pickr.min.js monolith.min.scss) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user