From 323ea0dad90251ecc09e13482ef33924eb5a5a2a Mon Sep 17 00:00:00 2001
From: Vincent <lara.vincent@gmail.com>
Date: Wed, 17 Apr 2019 17:13:20 +0200
Subject: [PATCH 1/6] Use alpine in elixir docker file

---
 Dockerfile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index e071ba529..18a2c18a8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
-FROM elixir:1.7
+FROM bitwalker/alpine-elixir:latest
 
-RUN apt-get update && apt-get install -y build-essential inotify-tools postgresql-client
+RUN apk add inotify-tools postgresql-client yarn
 
 RUN mix local.hex --force && mix local.rebar --force
 
@@ -8,4 +8,4 @@ COPY docker/entrypoint.sh /bin/entrypoint
 
 WORKDIR /app
 
-EXPOSE 4000 4001 4002
\ No newline at end of file
+EXPOSE 4000 4001 4002

From 54576a4d9b642d99adfc129facf04c751ff41a55 Mon Sep 17 00:00:00 2001
From: Vincent <lara.vincent@gmail.com>
Date: Wed, 17 Apr 2019 17:14:44 +0200
Subject: [PATCH 2/6] Add volume on postgres docker

---
 docker-compose.yml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/docker-compose.yml b/docker-compose.yml
index a80eef7f5..b454a7092 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,7 +1,6 @@
 version: '3'
 
 services:
-
   postgres:
     container_name: mobilizon_db
     restart: unless-stopped
@@ -9,6 +8,9 @@ services:
     environment:
       POSTGRES_PASSWORD: postgres
       POSTGRES_DB: mobilizon_dev
+    volumes:
+      - pgdata:/var/lib/postgresql/data
+
 
   front:
     container_name: mobilizon_front
@@ -43,3 +45,6 @@ services:
       MOBILIZON_DATABASE_DBNAME: mobilizon_dev
       MOBILIZON_DATABASE_HOST: postgres
     entrypoint: entrypoint
+volumes:
+  pgdata:
+  .:

From 990bfac44c830751fb3e615e91fb5100325431b6 Mon Sep 17 00:00:00 2001
From: Vincent <lara.vincent@gmail.com>
Date: Wed, 17 Apr 2019 17:15:36 +0200
Subject: [PATCH 3/6] Add phx.migrate_serve command that runs ecto commands and
 launch server

---
 mix.exs | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/mix.exs b/mix.exs
index 6ba7bbe99..bb8e8a821 100644
--- a/mix.exs
+++ b/mix.exs
@@ -7,7 +7,7 @@ defmodule Mobilizon.Mixfile do
     [
       app: :mobilizon,
       version: @version,
-      elixir: "~> 1.4",
+      elixir: "~> 1.8",
       elixirc_paths: elixirc_paths(Mix.env()),
       compilers: [:phoenix, :gettext] ++ Mix.compilers(),
       start_permanent: Mix.env() == :prod,
@@ -116,7 +116,8 @@ defmodule Mobilizon.Mixfile do
     [
       "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
       "ecto.reset": ["ecto.drop", "ecto.setup"],
-      test: ["ecto.create --quiet", "ecto.migrate", "test"]
+      test: ["ecto.create --quiet", "ecto.migrate", "test"],
+      "phx.migrate_serve": ["ecto.create --quiet", "ecto.migrate", "phx.server"]
     ]
   end
 

From 040266a65602411222f98ea27bdd3c7242fa0a70 Mon Sep 17 00:00:00 2001
From: Vincent <lara.vincent@gmail.com>
Date: Wed, 17 Apr 2019 17:16:21 +0200
Subject: [PATCH 4/6] Don't use entrypoints in docker

---
 docker-compose.yml      | 11 +++++------
 docker/entrypoint.sh    | 22 ----------------------
 js/Dockerfile           |  5 +++--
 js/docker/entrypoint.sh |  5 -----
 4 files changed, 8 insertions(+), 35 deletions(-)
 delete mode 100755 docker/entrypoint.sh
 delete mode 100755 js/docker/entrypoint.sh

diff --git a/docker-compose.yml b/docker-compose.yml
index b454a7092..82fed99d7 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -17,10 +17,10 @@ services:
     restart: unless-stopped
     build: ./js
     volumes:
-      - './js:/app/js'
+      - '.:/app'
     ports:
       - "8888:8080"
-    entrypoint: entrypoint
+    command: yarn run dev
 
   api:
     container_name: mobilizon_api
@@ -32,10 +32,9 @@ services:
       - "4000:4001"
     depends_on:
       - postgres
+      - front
     environment:
-      # Environment: Prod when ready
-      MIX_ENV: dev
-      # Instance
+      MIX_ENV: "dev"
       MOBILIZON_INSTANCE_NAME: My Mobilizon Instance
       MOBILIZON_INSTANCE_HOST: mobilizon.me
       MOBILIZON_INSTANCE_EMAIL: noreply@mobilizon.me
@@ -44,7 +43,7 @@ services:
       MOBILIZON_DATABASE_USERNAME: postgres
       MOBILIZON_DATABASE_DBNAME: mobilizon_dev
       MOBILIZON_DATABASE_HOST: postgres
-    entrypoint: entrypoint
+    command: "mix phx.migrate_serve"
 volumes:
   pgdata:
   .:
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
deleted file mode 100755
index 4c3955783..000000000
--- a/docker/entrypoint.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-mix deps.get
-
-# Wait for Postgres to become available.
-until PGPASSWORD=$MOBILIZON_DATABASE_PASSWORD psql -h $MOBILIZON_DATABASE_HOST -U $MOBILIZON_DATABASE_USERNAME -c '\q' 2>/dev/null; do
-  >&2 echo "Postgres is unavailable - sleeping"
-  sleep 1
-done
-
-echo "\nPostgres is available: continuing with database setup..."
-
-# Potentially Set up the database
-mix ecto.create
-mix ecto.migrate
-
-echo "\nTesting the installation..."
-# "Proove" that install was successful by running the tests
-mix test
-
-echo "\n Launching Phoenix web server..."
-iex -S mix phx.server
\ No newline at end of file
diff --git a/js/Dockerfile b/js/Dockerfile
index 55c74eded..d9db3df21 100644
--- a/js/Dockerfile
+++ b/js/Dockerfile
@@ -2,8 +2,9 @@ FROM node:10
 
 LABEL maintainer="tcit"
 
-COPY docker/entrypoint.sh /bin/entrypoint
+RUN yarn install
+RUN yarn upgrade node-sass
 
 WORKDIR /app/js
 
-EXPOSE 8080
\ No newline at end of file
+EXPOSE 8080
diff --git a/js/docker/entrypoint.sh b/js/docker/entrypoint.sh
deleted file mode 100755
index 24be99c19..000000000
--- a/js/docker/entrypoint.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-yan install
-yarn rebuild node-sass
-yarn run dev

From 43b23c46ed623ea08d5b2138eac507b415ed3e6e Mon Sep 17 00:00:00 2001
From: Vincent <lara.vincent@gmail.com>
Date: Wed, 17 Apr 2019 17:17:27 +0200
Subject: [PATCH 5/6] Add make test command

---
 Makefile                |  7 +++++++
 docker-compose.test.yml | 18 ++++++++++++++++++
 2 files changed, 25 insertions(+)
 create mode 100644 docker-compose.test.yml

diff --git a/Makefile b/Makefile
index 20eff2aa1..7e329f251 100644
--- a/Makefile
+++ b/Makefile
@@ -10,5 +10,12 @@ stop:
 	@bash docker/message.sh "stopping MobiliZon"
 	docker-compose down
 	@bash docker/message.sh "stopped"
+test: stop
+	@bash docker/message.sh "Building front"
+	docker-compose -f docker-compose.yml -f docker-compose.test.yml run front yarn run build
+	@bash docker/message.sh "Front built"
+	@bash docker/message.sh "Running tests"
+	docker-compose -f docker-compose.yml -f docker-compose.test.yml run api mix test
+	@bash docker/message.sh "Tests runned"
 
 target: init
diff --git a/docker-compose.test.yml b/docker-compose.test.yml
new file mode 100644
index 000000000..89f7a114a
--- /dev/null
+++ b/docker-compose.test.yml
@@ -0,0 +1,18 @@
+version: '3'
+
+services:
+  postgres:
+    restart: "no"
+    environment:
+      POSTGRES_DB: mobilizon_test
+  front:
+    restart: "no"
+  api:
+    restart: "no"
+    environment:
+      MIX_ENV: "test"
+      MOBILIZON_DATABASE_DBNAME: mobilizon_test
+    command: "mix test"
+volumes:
+  pgdata:
+  .:

From 9904030a81f86eaca1ef493637af5d52426dda8e Mon Sep 17 00:00:00 2001
From: Vincent <lara.vincent@gmail.com>
Date: Wed, 17 Apr 2019 17:17:35 +0200
Subject: [PATCH 6/6] Add .dockerignore

---
 .dockerignore | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 .dockerignore

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 000000000..5d13bb1cc
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,19 @@
+_build
+CONTRIBUTING.md
+deps
+docker-compose.yml
+Dockerfile
+.elixir_ls
+.formatter.exs
+.git
+.gitignore
+.gitlab
+.gitlab-ci.yml
+.graphqlconfig.yaml
+LICENSE
+Makefile
+README.md
+SECURITY.md
+ssh_match_hostname
+support
+.js/package-lock.json