diff --git a/deploy.sh b/deploy.sh index 1af31cf..b9babd2 100755 --- a/deploy.sh +++ b/deploy.sh @@ -11,7 +11,7 @@ check_installed docker-compose check_installed yarn check_installed mvn -docker-compose down +docker-compose -f docker-compose.yml -f docker-compose.prod.yml down # Generate Nuxt.js static website pushd frontend || exit 1 @@ -23,4 +23,4 @@ pushd api || exit 1 mvn clean package popd || exit 1 -docker-compose up -d --build +docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..043d3f0 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,7 @@ +version: '2.2' + +services: + + db: + ports: + - 3306:3306 diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..69c7506 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,33 @@ +version: '2.2' + +services: + + nginx: + image: nginx:latest + container_name: notes-nginx + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Brussels + volumes: + - ./frontend/dist:/usr/share/nginx/html + - ./nginx:/etc/nginx/conf.d + - ./data/certbot/conf:/etc/letsencrypt + - ./data/certbot/www:/var/www/certbot + ports: + - 80:80 + - 443:443 + depends_on: + - api + + api: + build: ./api + container_name: notes-api + env_file: + - .env + environment: + - TZ=Europe/Brussels + - MYSQL_HOST=db + depends_on: + db: + condition: service_healthy diff --git a/docker-compose.ssl.yml b/docker-compose.ssl.yml new file mode 100644 index 0000000..e0835b5 --- /dev/null +++ b/docker-compose.ssl.yml @@ -0,0 +1,9 @@ +version: '2.2' + +services: + + certbot: + image: certbot/certbot + volumes: + - ./data/certbot/conf:/etc/letsencrypt + - ./data/certbot/www:/var/www/certbot \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 5913ba9..3088bd4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,24 +2,6 @@ version: '2.2' services: - nginx: - image: nginx:latest - container_name: notes-nginx - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/Brussels - volumes: - - ./frontend/dist:/usr/share/nginx/html - - ./nginx:/etc/nginx/conf.d - - ./data/certbot/conf:/etc/letsencrypt - - ./data/certbot/www:/var/www/certbot - ports: - - 80:80 - - 443:443 - depends_on: - - api - db: image: mariadb container_name: notes-mariadb @@ -36,18 +18,5 @@ services: timeout: 10s retries: 10 - - api: - build: ./api - container_name: notes-api - env_file: - - .env - environment: - - TZ=Europe/Brussels - - MYSQL_HOST=db - depends_on: - db: - condition: service_healthy - volumes: notes-db-volume: diff --git a/generate-site.sh b/generate-site.sh index 5b660d9..9307f72 100755 --- a/generate-site.sh +++ b/generate-site.sh @@ -10,11 +10,11 @@ check_installed() { check_installed docker-compose check_installed yarn -docker-compose stop nginx +docker-compose -f docker-compose.yml -f docker-compose.prod.yml stop nginx # Generate Nuxt.js static website pushd frontend || exit 1 yarn run generate popd || exit 1 -docker-compose up -d --build nginx +docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build nginx diff --git a/start-db-dev.sh b/start-db-dev.sh new file mode 100755 index 0000000..566d5e3 --- /dev/null +++ b/start-db-dev.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +check_installed() { + if ! [ -x "$(command -v $1)" ]; then + echo "Error: $1 is not installed." >&2 + exit 1 + fi +} + +check_installed docker-compose + +docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build