From de5868f5ad64a89f4b5b9e1cab822052ed665356 Mon Sep 17 00:00:00 2001 From: "byte[]" Date: Tue, 3 Dec 2019 13:36:50 -0500 Subject: [PATCH] full docker setup --- docker-compose.yml | 3 ++- docker/app/Dockerfile | 19 ++++++++----------- docker/app/run-development | 24 ++++++++++++++++++++++++ docker/app/safe-rsvg-convert | 2 ++ docker/web/Dockerfile | 3 +-- lib/philomena/servers/image_processor.ex | 6 +++--- 6 files changed, 40 insertions(+), 17 deletions(-) create mode 100755 docker/app/run-development create mode 100755 docker/app/safe-rsvg-convert diff --git a/docker-compose.yml b/docker-compose.yml index 89d31849..06b558bb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,6 +11,7 @@ services: environment: - MIX_ENV=dev working_dir: /srv/philomena + tty: true volumes: - .:/srv/philomena depends_on: @@ -38,7 +39,7 @@ services: web: build: context: . - dockerfile: ./docker/app/Dockerfile + dockerfile: ./docker/web/Dockerfile volumes: - .:/srv/philomena depends_on: diff --git a/docker/app/Dockerfile b/docker/app/Dockerfile index b0042449..ec407548 100644 --- a/docker/app/Dockerfile +++ b/docker/app/Dockerfile @@ -3,21 +3,18 @@ FROM elixir:1.9.4 RUN apt-get update; \ apt-get -qq -y install apt-transport-https; \ echo "deb https://deb.nodesource.com/node_12.x stretch main" >> /etc/apt/sources.list; \ + echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list; \ + wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -; \ wget -qO - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -; \ apt-get update; \ - apt-get -qq -y install build-essential git ffmpeg nodejs libmagic-dev libpng-dev gifsicle optipng libjpeg-progs librsvg2-bin; \ + apt-get -qq -y install inotify-tools postgresql-client build-essential git ffmpeg nodejs libmagic-dev libpng-dev gifsicle optipng libjpeg-progs librsvg2-bin; \ cd /tmp; \ git clone https://github.com/derpibooru/cli_intensities; \ cd cli_intensities; \ make install; \ - echo -e '#!/bin/sh\nrsvg-convert < "$1" -o "$2"\n' > /usr/local/bin/safe-rsvg-convert; \ - chmod +x /usr/local/bin/safe-rsvg-convert - -WORKDIR /srv/philomena -ADD . /srv/philomena - -RUN cd /srv/philomena; \ mix local.hex --force; \ - mix deps.get; \ - cd assets; \ - npm install \ No newline at end of file + mix local.rebar --force + +COPY docker/app/run-development /usr/local/bin/run-development +COPY docker/app/safe-rsvg-convert /usr/local/bin/safe-rsvg-convert +CMD run-development \ No newline at end of file diff --git a/docker/app/run-development b/docker/app/run-development new file mode 100755 index 00000000..9f598cb6 --- /dev/null +++ b/docker/app/run-development @@ -0,0 +1,24 @@ +#!/bin/bash + +# Always install assets +(cd /srv/philomena/assets && npm install) + +# Always install mix dependencies +(cd /srv/philomena && mix deps.get) + +# Sleep to allow Elasticsearch to finish initializing +# if it's not done doing whatever it does yet +echo -n "Waiting for Elasticsearch" + +until wget -qO - localhost:9200; do + echo -n "." + sleep 2 +done + +echo + +# Try to create the database if it doesn't exist yet +createdb -h localhost -U postgres philomena_dev && mix ecto.setup_dev + +# Run the application +mix phx.server \ No newline at end of file diff --git a/docker/app/safe-rsvg-convert b/docker/app/safe-rsvg-convert new file mode 100755 index 00000000..ae1f68ac --- /dev/null +++ b/docker/app/safe-rsvg-convert @@ -0,0 +1,2 @@ +#!/bin/bash +rsvg-convert < "$1" -o "$2" diff --git a/docker/web/Dockerfile b/docker/web/Dockerfile index d2895bad..591d91d7 100644 --- a/docker/web/Dockerfile +++ b/docker/web/Dockerfile @@ -1,7 +1,6 @@ FROM nginx:1.17.6 ENV APP_DIR /srv/philomena -WORKDIR $APP_DIR COPY docker/web/nginx.conf /tmp/docker.nginx -RUN envsubst '$APP_DIR' < /tmp/docker.nginx /etc/nginx/conf.d/default.conf +RUN envsubst '$APP_DIR' < /tmp/docker.nginx > /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/lib/philomena/servers/image_processor.ex b/lib/philomena/servers/image_processor.ex index 5e9bc7b0..f0ba026d 100644 --- a/lib/philomena/servers/image_processor.ex +++ b/lib/philomena/servers/image_processor.ex @@ -33,9 +33,9 @@ defmodule Philomena.Servers.ImageProcessor do defp process(image_id) do Philomena.Processors.process_image(image_id) - #rescue - # _ -> - # nil + rescue + _ -> + nil end @impl true