IMAGE crisiscleanup
LAYER shared/alpine
LAYER shared/ruby
LAYER shared/nodejs
LAYER shared/libxml
LAYER crisiscleanup/crisiscleanup

FIXLAYER /usr/bin/fix-apk

ENV RAILS_ENV production

RUN EOF
    # Install runtime dependencies
    apk --no-cache add libpq tzdata

    # Install build dependencies
    apk --no-cache add --virtual .deps build-base git libxml2-dev libxslt-dev linux-headers npm postgresql-dev yarn zlib-dev

    # Clone CrisisCleanup
    git clone --depth 50 https://github.com/CrisisCleanup/crisiscleanup /srv/crisiscleanup
    # TODO: Update ruby version
    git -C /srv/crisiscleanup checkout b9035bd44fff371ea3d525eb560ff45504acaee7

    # Hackfix ruby and nodejs dependency versions
    sed -i 's/2\.2\.5/2.3.6/' /srv/crisiscleanup/Gemfile
    sed -i 's/rdoc (4\.2\.0)/rdoc (4.3.0)/' /srv/crisiscleanup/Gemfile.lock
    sed -i 's/8\.2\.0/>=8.2.0/' /srv/crisiscleanup/package.json

    # Install Ruby and NodeJS dependencies
    cd /srv/crisiscleanup
    bundle config build.nokogiri --use-system-libraries
    bundle install
    npm install
    yarn

    # Create CrisisCleanup secret
    echo -e "production:\n  secret_key_base: $(rake secret)" >/srv/crisiscleanup/config/secrets.yml

    # Generate static resources
    rake assets:precompile

    # Create OS user
    addgroup -S -g 8005 cc
    adduser -S -u 8005 -h /srv/crisiscleanup -s /bin/false -g cc -G cc cc
    chown -R cc:cc /srv/crisiscleanup

    # Cleanup
    apk --no-cache del .deps
    find /srv/crisiscleanup -name '.git*' -exec rm -rf {} +
    rm -rf /usr/local/share/.cache
    rm -rf /root/.bundle /root/.config /root/.npm
EOF

MOUNT /srv/crisiscleanup/conf srv/crisiscleanup/config

USER 8005 8005
WORKDIR /srv/crisiscleanup
CMD rails server
