forked from TracksApp/tracks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
41 lines (34 loc) · 1.24 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
FROM phusion/passenger-ruby22:0.9.18
WORKDIR /home/app/tracks
# Install gems
COPY Gemfile Gemfile.lock ./
RUN bundle install --without development test mysql therubyracer --jobs=3
# Install and configure the app
ENV RAILS_ENV=production
ENV DATABASE_URL=sqlite3:/var/tracks/database.sqlite3
RUN mkdir /var/tracks && chmod 777 /var/tracks
RUN touch /var/tracks/database.sqlite3 && chown app.app /var/tracks/database.sqlite3
COPY . ./
COPY config/site.yml.tmpl /etc/tracks/config/site.yml
RUN ln -sf /etc/tracks/config/site.yml config/site.yml
RUN bundle exec rake assets:precompile
RUN chown -R app.app .
# Configure nginx
RUN echo "env DATABASE_URL;" > /etc/nginx/main.d/env.conf
RUN echo "\
server {\n\
listen 80 default_server;\n\
server_name _;\n\
root /home/app/tracks/public;\n\
passenger_enabled on;\n\
passenger_user app;\n\
passenger_ruby /usr/bin/ruby2.2;\n\
}" > /etc/nginx/sites-enabled/tracks.conf
RUN rm /etc/nginx/sites-enabled/default
RUN rm -f /etc/service/nginx/down
# Migrate the database on startup
RUN echo "#!/bin/sh\nbundle exec rake db:migrate" > /etc/my_init.d/90_tracks.sh
RUN chmod +x /etc/my_init.d/90_tracks.sh
VOLUME ["/etc/tracks", "/var/tracks"]
# Default command for baseimage-docker
CMD ["/sbin/my_init"]