Add Docker and Travis config files to enable CI tests

Also fixes some Rails 6.0 deprecation warnings
This commit is contained in:
Albert Yi
2018-05-01 15:24:24 -07:00
parent fee9acc8a7
commit 79ea6f7e6c
18 changed files with 138 additions and 58 deletions

59
config/docker/compose.yml Normal file
View File

@@ -0,0 +1,59 @@
version: '3'
services:
db:
image: r888888888/postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=73e1ac2e91eb52a9981d09fca561aac3
memcached:
image: memcached:alpine
ports:
- "11211:11211"
command: memcached
archives:
image: r888888888/archives
command: sleep 1d
environment:
- POSTGRES_HOST=db
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=73e1ac2e91eb52a9981d09fca561aac3
- RAILS_ENV
- AMAZON_KEY
- AMAZON_SQS_REGION
- AMAZON_SECRET
- SQS_ARCHIVES_URL
- RUN
depends_on:
- db
web:
environment:
- SECRET_TOKEN=73e1ac2e91eb52a9981d09fca561aac3
- SESSION_SECRET_KEY=73e1ac2e91eb52a9981d09fca561aac3
- RAILS_ENV
- DATABASE_URL
- RO_DATABASE_URL
- ARCHIVE_DATABASE_URL
- DANBOORU_MEMCACHED_SERVERS
- DANBOORU_AWS_SQS_ARCHIVE_URL
- DANBOORU_PIXIV_LOGIN
- DANBOORU_PIXIV_PASSWORD
- DANBOORU_TWITTER_API_KEY
- DANBOORU_TWITTER_API_SECRET
- DANBOORU_AWS_ACCESS_KEY_ID
- DANBOORU_AWS_SECRET_ACCESS_KEY
- DANBOORU_AWS_SQS_REGION
- DANBOORU_NIJIE_LOGIN
- DANBOORU_NIJIE_PASSWORD
- DANBOORU_NICO_SEIGA_LOGIN
- DANBOORU_NICO_SEIGA_PASSWORD
build:
context: ../..
dockerfile: config/docker/danbooru-ci
command: sleep 1d
ports:
- "3000:3000"
depends_on:
- db
- memcached
- archives

View File

@@ -0,0 +1,31 @@
# This sets up a docker container suitable for use with Travis CI
FROM ruby:2.5.1-slim-stretch
RUN apt-get update
ENV DOCKERIZE_VERSION v0.6.1
RUN apt-get -y install wget
RUN wget -q https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
RUN apt-get -y install -qq apt-utils build-essential automake libssl-dev libxml2-dev libxslt-dev ncurses-dev sudo libreadline-dev flex bison ragel memcached libmemcached-dev git curl libcurl4-openssl-dev imagemagick libmagickcore-dev libmagickwand-dev sendmail-bin sendmail postgresql-client libpq-dev nginx ssh coreutils libavcodec-dev mkvtoolnix emacs24-nox telnet libvips42 libvips-tools libvips-dev > /dev/null
RUN useradd -ms /bin/bash danbooru -u 1000
RUN mkdir /app
RUN mkdir -p /var/www/danbooru/shared/data
RUN mkdir -p /var/www/danbooru/shared/data/preview
RUN mkdir -p /var/www/danbooru/shared/data/sample
COPY . /app
RUN chown -R danbooru:danbooru /app
RUN chown -R danbooru:danbooru /var/www/danbooru
RUN mkdir /var/run/danbooru
RUN chown danbooru:danbooru /var/run/danbooru
EXPOSE 3000
USER danbooru
RUN echo 'gem: --no-document' > ~/.gemrc
RUN gem install bundler --quiet
WORKDIR /app
RUN bundle install > /dev/null
COPY script/install/database.yml.templ /app/config/database.yml
COPY script/install/danbooru_local_config.rb.templ /app/config/danbooru_local_config.rb
EXPOSE 3000
CMD sleep 1d

View File

@@ -0,0 +1,9 @@
# This sets up a docker container suitable for use with Travis CI
FROM r888888888/danbooru-base
USER root
COPY . /app
RUN chown -R danbooru:danbooru .
USER danbooru
RUN bundle install > /dev/null