diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0078aa0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM phusion/passenger-ruby22:latest +MAINTAINER "Miguel Angel Gordian miguel.angel@civica.digital" + +ENV HOME /root + +CMD ["/sbin/my_init"] +RUN ruby-switch --set ruby2.2 + +USER app +WORKDIR /home/app/api_cdmx + +ADD . /home/app/api_cdmx +ADD docker/api_cdmx.conf /etc/nginx/sites-enabled/ +ADD docker/00_app_env.conf /etc/nginx/conf.d/ +ADD docker/api_cdmx-env.conf /etc/nginx/main.d/ +ADD docker/database.yml /home/app/api_cdmx/config/database.yml + +USER root +RUN bundle install +RUN rm -f /etc/service/nginx/down +RUN rm /etc/nginx/sites-enabled/default +RUN chown -R app:app /home/app/api_cdmx + +RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f2c5ea1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +postgres: + image: postgres:9.4 + env_file: keys.env + +apilabcdmx: + build: . + ports: + - "8080:80" + links: + - postgres + env_file: keys.env + environment: + PASSENGER_APP_ENV: production + +backup: + image: civicadigital/backup + links: + - postgres + # env_file: backup.env diff --git a/docker/00_app_env.conf b/docker/00_app_env.conf new file mode 100644 index 0000000..21a9d3e --- /dev/null +++ b/docker/00_app_env.conf @@ -0,0 +1,3 @@ +# /etc/nginx/conf.d/00_app_env.conf +# File will be overwritten if user runs the container with `-e PASSENGER_APP_ENV=...`! +passenger_app_env development; diff --git a/docker/api_cdmx-env.conf b/docker/api_cdmx-env.conf new file mode 100644 index 0000000..c4e827c --- /dev/null +++ b/docker/api_cdmx-env.conf @@ -0,0 +1,21 @@ +env ECOBICI_CLIENT_ID; +env ECOBICI_CLIENT_SECRET; + +env SEMOVI_TAXIS_PASSWORD; + +env FINANZAS_USUARIO; +env FINANZAS_PASSWORD; + +env SSP_CORRALONES; + +env SECRET_KEY_BASE; + +env PASSENGER_APP_ENV; + +env NEW_RELIC_APP_NAME; +env NEW_RELIC_LICENSE_KEY; + +env POSTGRES_PORT_5432_TCP_ADDR; +env POSTGRES_PORT_5432_TCP_PORT; +env POSTGRES_USERNAME; +env POSTGRES_PASSWORD; diff --git a/docker/api_cdmx.conf b/docker/api_cdmx.conf new file mode 100644 index 0000000..8eab41b --- /dev/null +++ b/docker/api_cdmx.conf @@ -0,0 +1,10 @@ +server { + listen 80; + server_name api.labcd.mx; + root /home/app/api_cdmx/public; + + passenger_enabled on; + passenger_user app; + + passenger_ruby /usr/bin/ruby2.2; +} diff --git a/docker/database.yml b/docker/database.yml new file mode 100644 index 0000000..983e745 --- /dev/null +++ b/docker/database.yml @@ -0,0 +1,24 @@ +default: &default + adapter: postgresql + pool: 5 + timeout: 5000 + encoding: unicode + +development: + <<: *default + database: labcdmx_development + username: + password: + +test: + <<: *default + database: labcdmx_test + username: + password: + +production: + <<: *default + database: labcdmx_production + username: postgres + password: <%= ENV["POSTGRES_PASSWORD"] %> + host: <%= ENV["POSTGRES_PORT_5432_TCP_ADDR"] %>