mirror of
https://github.com/chenasraf/opensnp.org-docker.git
synced 2026-05-17 17:48:10 +00:00
Less places with ruby versions (#2)
* Reduce number of places where Ruby versions are specified * Add TravisCI config * Let's see which Ruby the app user uses * Set Ruby version as app user * Use full path for calling rvm * Same but different * Use rvm Ruby throughout * Try setting up Postgres on TravisCI * Remove passenger_ruby nginx directive It should be the default... maybe... * fixup! Try setting up Postgres on TravisCI * Use Docker Compose * Don't wait 10 seconds * Try multiple times before drawing conclusions * Explicitly set a password for postgres * Try pruning volumes * Also retry db setup if request failed * Do we actually need to build before up? * Move empty lines around * Turns out, no sudo needed
This commit is contained in:
committed by
Bastian Greshake Tzovaras
parent
984b494dcd
commit
3cc18990b8
4
.travis.yml
Normal file
4
.travis.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
services:
|
||||
- docker
|
||||
script:
|
||||
- test/run
|
||||
12
Dockerfile
12
Dockerfile
@@ -1,4 +1,4 @@
|
||||
FROM phusion/passenger-ruby24:0.9.27
|
||||
FROM phusion/passenger-customizable:0.9.27
|
||||
|
||||
ENV RAILS_ENV production
|
||||
|
||||
@@ -6,7 +6,7 @@ RUN apt-get -q update
|
||||
RUN apt-get -qy -o Dpkg::Options::="--force-confold" upgrade
|
||||
RUN echo 'postfix postfix/mailname string opensnp.org' | debconf-set-selections
|
||||
RUN echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
|
||||
RUN apt-get install -qy libhiredis-dev postgresql-client-9.5 postfix imagemagick tzdata
|
||||
RUN apt-get install -qy libhiredis-dev postgresql-client-9.5 postfix imagemagick tzdata libpq-dev
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
RUN postconf -e myhostname=opensnp.org
|
||||
@@ -30,12 +30,16 @@ RUN git rev-parse HEAD > REVISION
|
||||
RUN rm -rf .git
|
||||
RUN chown app:app -R /home/app
|
||||
|
||||
RUN /usr/local/rvm/bin/rvm install $(cat .ruby-version)
|
||||
RUN /usr/local/rvm/bin/rvm alias create default $(cat .ruby-version)
|
||||
|
||||
USER app
|
||||
|
||||
ADD database.yml config/database.yml
|
||||
RUN bundle install --deployment --without test development
|
||||
RUN bash -l -c 'gem install bundler'
|
||||
RUN bash -l -c 'bundle install --jobs=4 --deployment --without test development'
|
||||
RUN cp .env.development .env
|
||||
RUN bundle exec rake assets:precompile
|
||||
RUN bash -l -c 'bundle exec rake assets:precompile'
|
||||
RUN rm .env
|
||||
|
||||
USER root
|
||||
|
||||
36
docker-compose.yml
Normal file
36
docker-compose.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
rails:
|
||||
build: '.'
|
||||
ports:
|
||||
- '8080:80'
|
||||
volumes:
|
||||
- './test/ssl:/etc/ssl'
|
||||
environment:
|
||||
POSTGRES_URL: 'postgres://postgres@postgres/opensnp'
|
||||
REDIS_URL: 'redis://redis'
|
||||
SECRET_KEY_BASE: foo
|
||||
SECRET_TOKEN: bar
|
||||
PLOS_API_KEY: foo
|
||||
RECAPTCHA_SECRET_KEY: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
|
||||
RECAPTCHA_SITE_KEY: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
|
||||
MENDELEY_CONSUMER_KEY: foo
|
||||
ERRBIT_API_KEY: foo
|
||||
ERRBIT_HOST: localhost
|
||||
OH_CLIENT_ID: foo
|
||||
OH_CLIENT_SECRET: bar
|
||||
SENTRY_DSN: foo
|
||||
SENTRY_RELEASE_WEBHOOK: http://example.com/
|
||||
SURVEY_EMAIL_USER: foobar
|
||||
SURVEY_EMAIL_PASSWORD: foobar
|
||||
SURVEY_EMAIL_ADDRESS: foobar
|
||||
SURVEY_EMAIL_PORT: foobar
|
||||
|
||||
postgres:
|
||||
image: 'postgres:9.3'
|
||||
volumes:
|
||||
- './postgres-data:/var/lib/postgresql/data'
|
||||
|
||||
redis:
|
||||
image: 'redis:2.8'
|
||||
@@ -5,7 +5,6 @@ server {
|
||||
root /home/app/snpr/public;
|
||||
passenger_enabled on;
|
||||
passenger_user app;
|
||||
passenger_ruby /usr/bin/ruby2.4;
|
||||
}
|
||||
|
||||
server {
|
||||
@@ -26,7 +25,6 @@ server {
|
||||
root /home/app/snpr/public;
|
||||
passenger_enabled on;
|
||||
passenger_user app;
|
||||
passenger_ruby /usr/bin/ruby2.4;
|
||||
|
||||
passenger_max_request_queue_size 200;
|
||||
}
|
||||
|
||||
24
test/run
Executable file
24
test/run
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
POSTGRES_DATA_DIR=test/postgres-data
|
||||
|
||||
set -x
|
||||
|
||||
mkdir $POSTGRES_DATA_DIR
|
||||
docker-compose up -d
|
||||
|
||||
i=10
|
||||
while
|
||||
docker exec -ti opensnporgdocker_rails_1 bash -l -c 'bundle exec rake db:reset'
|
||||
curl -sf "http://localhost:8080/" > /dev/null
|
||||
status=$?
|
||||
[ $status -ne 0 -a $i -gt 0 ]
|
||||
do
|
||||
sleep 1
|
||||
i=$((i-1))
|
||||
done
|
||||
|
||||
docker-compose rm -sfv
|
||||
rm -rf $POSTGRES_DATA_DIR
|
||||
|
||||
exit $status
|
||||
21
test/ssl/certs/opensnp.org.crt
Normal file
21
test/ssl/certs/opensnp.org.crt
Normal file
@@ -0,0 +1,21 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDjDCCAnSgAwIBAgIJAMrtCf/PudBdMA0GCSqGSIb3DQEBCwUAMFsxCzAJBgNV
|
||||
BAYTAlhYMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
|
||||
aWRnaXRzIFB0eSBMdGQxFDASBgNVBAMMC29wZW5zbnAub3JnMB4XDTE4MDEwNjE3
|
||||
MjA0N1oXDTI4MDEwNDE3MjA0N1owWzELMAkGA1UEBhMCWFgxEzARBgNVBAgMClNv
|
||||
bWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIG
|
||||
A1UEAwwLb3BlbnNucC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||
AQC9dOqU16qgzzEezKG1I89nWQELWZIQU5wOa/T+T8EFdvMnEKEgz58OD+HVGR0b
|
||||
2vxQXhDYf/xH7AVqm029MjNUUE1DzaEyU1yTuCoXlaDhfUvuCjNvMTe64cRl/s2j
|
||||
XzkgoczfbDDcyXwLmDmbFU3IZS0IP66hHH9mnciQxZKsO9cHsXeCXQSoK5h02MXr
|
||||
Gd8WmPyDUOGVpBZfrzyooOcPfRDvTW0jZgQk5HM0BCQ7ZfqwpOJLg2mkWo7HqoVF
|
||||
Lxjsz+1wA5lQys1cIct6bJ/5+CZXWpLnH+7f2vkz+epe8qqa5Um4kbBl522AW8ZM
|
||||
Bfpg3vLySC59R2UzI70TsKapAgMBAAGjUzBRMB0GA1UdDgQWBBTW0tGjtYFb7Rrp
|
||||
fEoyIKQqRLAqQzAfBgNVHSMEGDAWgBTW0tGjtYFb7RrpfEoyIKQqRLAqQzAPBgNV
|
||||
HRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCcy1FfrQcoxUMFFWfyGvay
|
||||
/Ull4lmjfg5T/eMov4a+MZ0Dzvy5fDZ/HNCmTTuKz/cNyfGx9i1M3qSjjOVfDd76
|
||||
CVCxfe5ZStnDLs4JytWLRmd4Dc2iEZhE6bcDoEGCcsmOxqaWF1nwOsOHr4tXUsV8
|
||||
NWf/n3SNrQ1Ngwjt8eP2CnwP9vIAIgTnM6OHRT39ocNYRjdIX4eEPnk0s/DZFldB
|
||||
9LtanYpijihDWtw8j5/0wME/ttR7zksywOH3V+iEiPcHbgo9AEm42VLoaYr3y7ar
|
||||
67d3i2y9yZ5qd7ZIu0ebTIWUR3RJ5OTkezhsid9zeHApi9EvI4/O8PtWrY3AoM80
|
||||
-----END CERTIFICATE-----
|
||||
28
test/ssl/private/opensnp.org.key
Normal file
28
test/ssl/private/opensnp.org.key
Normal file
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC9dOqU16qgzzEe
|
||||
zKG1I89nWQELWZIQU5wOa/T+T8EFdvMnEKEgz58OD+HVGR0b2vxQXhDYf/xH7AVq
|
||||
m029MjNUUE1DzaEyU1yTuCoXlaDhfUvuCjNvMTe64cRl/s2jXzkgoczfbDDcyXwL
|
||||
mDmbFU3IZS0IP66hHH9mnciQxZKsO9cHsXeCXQSoK5h02MXrGd8WmPyDUOGVpBZf
|
||||
rzyooOcPfRDvTW0jZgQk5HM0BCQ7ZfqwpOJLg2mkWo7HqoVFLxjsz+1wA5lQys1c
|
||||
Ict6bJ/5+CZXWpLnH+7f2vkz+epe8qqa5Um4kbBl522AW8ZMBfpg3vLySC59R2Uz
|
||||
I70TsKapAgMBAAECggEAZxoGQwPu3l6C28D+y4X2a8aa8+NFws7NYWfMxsz+PQwT
|
||||
nRHGrgVvCIcKHh7xoWQV5WKbhkZ4M2e1NuPXdXupRVwCAEEaVTnaaqVRes455Bx8
|
||||
wskYXo2JR5FvgRYeMKc0fpau2HOXT7/yWpj32HbKgqDU1eVaEmFgz6ZULLzoagOh
|
||||
OBkBiVaM6yR0k4JQAfSdiL/f/GRDthn5M5C7aeyHFAuwMahsD4dSZ/6wGDoLiwGH
|
||||
SuO1qwqDHyK/PE3CbrChYvzHtPh8Rq7SsiwwsumDpuZ1Ek21HyvpI3GkIenqJh60
|
||||
wVH51ca5ZcT5yWYPOOy4+6jY+mhowjK4Lmp12UqDBQKBgQD4i0umkkvi3k3NaMLE
|
||||
634srjhwxLTp4Ybnbrr+pPBQqusvV1VxfkcweWeKDJvmtOLpFUcdh2eObQcVJKQI
|
||||
Qem7eu5wlQKwCZAuhkfm+mXA1n4YBtK01JTAfMeIeLuXFDGE4cpsnIJjPSusm22U
|
||||
2uIFvxCskD0pB0AiD1VsVOXrgwKBgQDDI9tMsIcIz8c+AGpcs5NJvnr4OsGqS158
|
||||
W7YnTH7m6RU02tc/H/XZQIPSi00Urss7uU4o69DRO/MYQPmmIbvJGhCrl7WVo9vw
|
||||
769r/VDOpAoaMhrs43TViyUD0SvvY8GUNIfsdwV3Z5vzjaBuME2GBI2tJ4anAoLK
|
||||
klV5NXuxYwKBgCafPro7sZ8nfF+XD+0ZyxmWWR7s8lAFw7ji9Bvt9YoThUhuAdEJ
|
||||
Fnbp5rUFEJThNwGRVOO5ztXLC3a1oufFllST3cmQ3kIMumMAatvxvS4iJqYFKWkA
|
||||
P71JppgGauAnOyqzC4mlKH3TW54O6RBgkw7hie3G3Dor7kNcrqGO78uRAoGAViiW
|
||||
wx2OAY374pw8WgHPnlfD46XNrGrqpO25V1CnFz0CZ/vX3b82xV1+1o860U773LrM
|
||||
j7TO1hMqGiNWFsv+JaSkh57MRe27Rn4NbhjCfPpgm4BT8xPamg59oVnRlDjvV4h6
|
||||
GyXR/A57BOYbV4tsLygDhdhV05eAOAC0THgYzRECgYB+U1rfw9F6ekG5pJpkExhs
|
||||
wORNJNPcNX7SaXRccUcy/qKYCDzo7jlJjb/PSsbd7kG3143bPnQY3ZkbADJbNOec
|
||||
7AGYPcmK8WuG1fYlILzWaOd8cn5utEhWYXDTRAx5hQa8iAKBoapcn2O5KxA7isju
|
||||
pyC/BsxZdvxDBV4dxlZoow==
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user