From d31d9163f0f4c33d699b7cd6c52f28fcbcb90407 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz>
Date: Tue, 5 Jul 2022 13:56:52 +0200
Subject: [PATCH] Preparing to production

---
 .dockerignore      |  3 +++
 .gitignore         |  1 +
 .gitlab-ci.yml     | 27 ++++++++-------------------
 Dockerfile         |  4 ----
 Dockerfile.nginx   |  3 ---
 VERSION            |  1 +
 docker-compose.yml | 28 +++++-----------------------
 nginx.conf         | 23 -----------------------
 8 files changed, 18 insertions(+), 72 deletions(-)
 create mode 100644 .dockerignore
 create mode 100644 .gitignore
 delete mode 100644 Dockerfile.nginx
 create mode 100644 VERSION
 delete mode 100644 nginx.conf

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..26c28ef
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+**
+!measurer
+!run.sh
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..35f78b1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+docker-compose.yaml
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f92d2c5..6e89260 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,30 +1,19 @@
-stages:
-  - build
-
-image: docker:20.10.8
+image: docker:20.10.9
 
 variables:
   DOCKER_TLS_CERTDIR: "/certs"
-  IMAGE_TAG_APP: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
-  IMAGE_TAG_NGINX: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-nginx
 
 services:
-  - docker:20.10.8-dind
+  - docker:20.10.9-dind
 
 before_script:
   - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
 
-build_app:
-  stage: build
-  script:
-    - docker pull $CI_REGISTRY_IMAGE:master || true
-    - docker build --cache-from $CI_REGISTRY_IMAGE:master -t $IMAGE_TAG_APP .
-    - docker push $IMAGE_TAG_APP
-
-build_nginx:
+build:
   stage: build
-  when: manual
   script:
-    - docker pull $CI_REGISTRY_IMAGE:test-nginx || true
-    - docker build --cache-from $CI_REGISTRY_IMAGE:test-nginx -t $IMAGE_TAG_NGINX . -f Dockerfile.nginx
-    - docker push $IMAGE_TAG_NGINX
+    - VERSION=`cat VERSION`
+    - docker pull $CI_REGISTRY_IMAGE:latest || true
+    - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$VERSION --tag $CI_REGISTRY_IMAGE:latest .
+    - docker push $CI_REGISTRY_IMAGE:$VERSION
+    - docker push $CI_REGISTRY_IMAGE:latest
diff --git a/Dockerfile b/Dockerfile
index db489ae..6861a2a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -27,10 +27,6 @@ RUN PIPENV_VENV_IN_PROJECT=1 pipenv install gunicorn
 
 FROM base AS runtime
 
-# Install Postgres
-RUN apt-get update
-RUN apt-get install -yq --no-install-recommends postgresql
-
 # Copy virtual env from python-deps stage
 COPY --from=python-deps /.venv /.venv
 ENV PATH="/.venv/bin:$PATH"
diff --git a/Dockerfile.nginx b/Dockerfile.nginx
deleted file mode 100644
index f95c410..0000000
--- a/Dockerfile.nginx
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM nginx:1.23
-EXPOSE 8080
-ADD nginx.conf /etc/nginx/conf.d/measurer.conf
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..6e8bf73
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+0.1.0
diff --git a/docker-compose.yml b/docker-compose.yml
index a670fed..287cafb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,32 +1,14 @@
 version: "3"
 
 services:
-  database:
-    image: "postgres:latest"
-
-    environment:
-      POSTGRES_DB: measurer
-      POSTGRES_PASSWORD: measurer
-      POSTGRES_USER: measurer
-
-    expose:
-      - "5432"
-
-    restart: always
   measurer:
-    build: "."
-
+    image: ppm
     environment:
       FLASK_APP: measurer
       FLASK_ENV: production
-      DATABASE_URL: postgresql://measurer:measurer@database/measurer
-
-    depends_on:
-      - database
-
+      DATABASE_URL: postgresql://ppm:password@10.42.0.11/ppm
     ports:
-      - "5009:5009"
-
-    restart: always
-
+      - "8080:5009"
+    volumes:
+      - "./config.example.json:/home/appuser/config.json"
     command: ["/bin/bash", "./run.sh"]
diff --git a/nginx.conf b/nginx.conf
deleted file mode 100644
index 17af248..0000000
--- a/nginx.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-upstream measurer {
-	ip_hash;
-	server measurer:5009
-}
-
-server {
-	server_name measurer;
-	listen 8080;
-	
-	client_max_body_size 10M;
-	
-	proxy_connect_timeout 60;
-	proxy_send_timeout 60;
-	proxy_read_timeout 60;
-	send_timeout 60;
-	
-	location / {
-		proxy_pass http://measurer/;
-		proxy_set_header Host $host;
-		proxy_set_header X-Forwarded-Proto https;
-		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-	}
-}
-- 
GitLab