-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
69 lines (61 loc) · 3.34 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
FROM ruby:2.7
#Install Nodejs + Yarn + db-clients + ffmpeg + mc (mcedit editor for credentials)
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get update \
&& apt install nodejs sqlite3 postgresql-client mariadb-client libmariadb-dev ffmpeg mc -y --no-install-recommends \
&& curl -sL 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 yarn \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /
#Install Ruby On Rails
RUN gem install mysql2 pg rails && rails new app --webpack=vue -d postgresql --skip-turbolinks \
&& rm -f /app/app/javascript/packs/hello_vue.js /app/app/javascript/app.vue
WORKDIR /app
RUN echo "\n#######################################################################" >> Gemfile \
&& echo "# Rails addon gems" >> Gemfile \
&& echo "# Job processing, auth, pagination, image/video processing, audit, search" >> Gemfile \
&& echo "# simple-forms, sms, file upload, file storage, localization, monitoring" >> Gemfile \
&& echo "#######################################################################" >> Gemfile \
&& echo "gem 'sidekiq', '>= 6'" >> Gemfile \
&& echo "gem 'prometheus_exporter'" >> Gemfile \
&& echo "gem 'elasticsearch-model'" >> Gemfile \
&& echo "gem 'elasticsearch-rails'" >> Gemfile \
&& echo "gem 'audited', '~> 4.9'" >> Gemfile \
&& echo "gem 'devise'" >> Gemfile \
&& echo "gem 'omniauth-facebook'" >> Gemfile \
&& echo "gem 'omniauth-google-oauth2'" >> Gemfile \
&& echo "gem 'omniauth-twitter'" >> Gemfile \
&& echo "gem 'omniauth-vkontakte'" >> Gemfile \
&& echo "gem 'omniauth-github'" >> Gemfile \
&& echo "gem 'will_paginate', '>= 3'" >> Gemfile \
&& echo "gem 'image_processing', '~> 1.2'" >> Gemfile \
&& echo "gem 'streamio-ffmpeg', '>= 2'" >> Gemfile \
&& echo "gem 'simple_form'" >> Gemfile \
&& echo "gem 'font-awesome-sass'" >> Gemfile \
&& echo "gem 'turbosms'" >> Gemfile \
&& echo "gem 'dotenv-rails'" >> Gemfile \
&& echo "gem 'carrierwave', '>= 2.0'" >> Gemfile \
&& echo "gem 'aws-sdk-s3'" >> Gemfile \
&& echo "gem 'activestorage-sftp'" >> Gemfile \
&& echo "gem 'rails-i18n', '~> 6.0.0'" >> Gemfile \
&& echo "gem 'carrierwave-i18n'" >> Gemfile \
&& echo "gem 'devise-i18n'" >> Gemfile \
&& echo "gem 'will-paginate-i18n'" >> Gemfile \
&& echo "\ngroup :development, :test do" >> Gemfile \
&& echo " gem 'faker'" >> Gemfile \
&& echo "end" >> Gemfile \
&& bundle install \
&& rails generate simple_form:install --bootstrap \
&& rails generate devise:install && rails generate devise:i18n:views \
&& rails action_text:install \
&& rails action_mailbox:install \
&& rails generate audited:install --audited-changes-column-type json \
# Moving migration from db/migrate (every build create new version causing migration problems)
&& mkdir db/system && mv db/migrate/*.rb db/system/ \
# Site access
&& sed -i -- 's!Rails.application.configure do!Rails.application.configure do\n config.hosts.clear!' config/environments/development.rb
RUN yarn add bootstrap jquery popper.js dropzone vue-router bootstrap-vue vuex axios actioncable-vue
COPY image /
EXPOSE 3000
CMD /puma-entrypoint.sh