mirror of
https://github.com/chevereto/docker.git
synced 2025-12-17 21:49:45 +01:00
deploy
This commit is contained in:
16
Makefile
16
Makefile
@@ -1,6 +1,7 @@
|
|||||||
#!make
|
#!make
|
||||||
SYSTEM ?= ubuntu/22.04
|
SYSTEM ?= ubuntu/22.04
|
||||||
ENV_FILE = ./.env
|
ENV_FILE = ./.env
|
||||||
|
DOMAIN ?= chevereto.cloud
|
||||||
NAMESPACE ?= chevereto
|
NAMESPACE ?= chevereto
|
||||||
NAMESPACE_FILE = ./namespace/${NAMESPACE}
|
NAMESPACE_FILE = ./namespace/${NAMESPACE}
|
||||||
NAMESPACE_FILE_EXISTS = false
|
NAMESPACE_FILE_EXISTS = false
|
||||||
@@ -75,8 +76,8 @@ feedback--compose: feedback--image
|
|||||||
@echo "🐋 ${COMPOSE_FILE}"
|
@echo "🐋 ${COMPOSE_FILE}"
|
||||||
|
|
||||||
feedback--url:
|
feedback--url:
|
||||||
@echo "🔌 ${PORT}"
|
@echo "Protocol ${PROTOCOL} (:${PORT})"
|
||||||
@echo "${URL} @URL"
|
@echo "@URL ${URL}"
|
||||||
|
|
||||||
feedback--image:
|
feedback--image:
|
||||||
@echo "📦 ${IMAGE} (BASE ${IMAGE_NAME})"
|
@echo "📦 ${IMAGE} (BASE ${IMAGE_NAME})"
|
||||||
@@ -209,6 +210,17 @@ destroy: feedback feedback--compose cloudflare--delete
|
|||||||
${DOCKER_COMPOSE} down --volumes
|
${DOCKER_COMPOSE} down --volumes
|
||||||
@rm namespace/${NAMESPACE}
|
@rm namespace/${NAMESPACE}
|
||||||
|
|
||||||
|
# Provisioning
|
||||||
|
|
||||||
|
provision: feedback
|
||||||
|
make namespace HOSTNAME="${NAMESPACE}.${DOMAIN}"
|
||||||
|
make spawn NAMESPACE=${NAMESPACE}
|
||||||
|
|
||||||
|
install: feedback
|
||||||
|
docker exec -it --user ${DOCKER_USER} \
|
||||||
|
${CONTAINER_BASENAME}_${SERVICE} \
|
||||||
|
app/bin/legacy -C install -u "${ADMIN_USER}" -e "${ADMIN_EMAIL}" -x "${ADMIN_PASSWORD}"
|
||||||
|
|
||||||
# nginx-proxy
|
# nginx-proxy
|
||||||
|
|
||||||
proxy:
|
proxy:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
version: "3.8"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
database:
|
database:
|
||||||
@@ -9,6 +9,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- database:/var/lib/mysql
|
- database:/var/lib/mysql
|
||||||
restart: always
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: password
|
MYSQL_ROOT_PASSWORD: password
|
||||||
MYSQL_DATABASE: chevereto
|
MYSQL_DATABASE: chevereto
|
||||||
@@ -24,6 +28,9 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- storage:/var/www/html/images/
|
- storage:/var/www/html/images/
|
||||||
restart: always
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
database:
|
||||||
|
condition: service_healthy
|
||||||
expose:
|
expose:
|
||||||
- 80
|
- 80
|
||||||
- 443
|
- 443
|
||||||
|
|||||||
23
deploy.sh
Executable file
23
deploy.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
NAMESPACE="$1"
|
||||||
|
ADMIN_USER="${ADMIN_USER:-admin}"
|
||||||
|
ADMIN_EMAIL="$2"
|
||||||
|
ADMIN_PASSWORD="$(openssl rand -base64 8)"
|
||||||
|
|
||||||
|
NAMESPACE=${NAMESPACE} make provision &&
|
||||||
|
NAMESPACE=${NAMESPACE} \
|
||||||
|
ADMIN_PASSWORD=${ADMIN_PASSWORD} \
|
||||||
|
ADMIN_EMAIL=${ADMIN_EMAIL} \
|
||||||
|
ADMIN_USER=${ADMIN_USER} make install
|
||||||
|
|
||||||
|
echo "🚀 Deployment complete!"
|
||||||
|
|
||||||
|
NAMESPACE=${NAMESPACE} make feedback--url
|
||||||
|
|
||||||
|
echo "Login details"
|
||||||
|
echo "--"
|
||||||
|
echo "Email: ${ADMIN_EMAIL}"
|
||||||
|
echo "Password: ${ADMIN_PASSWORD}"
|
||||||
9
dev.yml
9
dev.yml
@@ -1,4 +1,4 @@
|
|||||||
version: "3.8"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
database:
|
database:
|
||||||
@@ -11,6 +11,10 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:3306
|
- ${DB_PORT}:3306
|
||||||
restart: always
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: password
|
MYSQL_ROOT_PASSWORD: password
|
||||||
MYSQL_DATABASE: chevereto
|
MYSQL_DATABASE: chevereto
|
||||||
@@ -32,6 +36,9 @@ services:
|
|||||||
- ${HTTP_PORT}:80
|
- ${HTTP_PORT}:80
|
||||||
- ${HTTPS_PORT}:443
|
- ${HTTPS_PORT}:443
|
||||||
restart: always
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
database:
|
||||||
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
CHEVERETO_ENVIRONMENT: dev
|
CHEVERETO_ENVIRONMENT: dev
|
||||||
CHEVERETO_DB_HOST: database
|
CHEVERETO_DB_HOST: database
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
version: "3.8"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
database:
|
database:
|
||||||
@@ -9,6 +9,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- database:/var/lib/mysql
|
- database:/var/lib/mysql
|
||||||
restart: always
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: password
|
MYSQL_ROOT_PASSWORD: password
|
||||||
MYSQL_DATABASE: chevereto
|
MYSQL_DATABASE: chevereto
|
||||||
@@ -26,6 +30,9 @@ services:
|
|||||||
- ${HTTP_PORT}:80
|
- ${HTTP_PORT}:80
|
||||||
- ${HTTPS_PORT}:443
|
- ${HTTPS_PORT}:443
|
||||||
restart: always
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
database:
|
||||||
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
VIRTUAL_HOST: ${HOSTNAME}
|
VIRTUAL_HOST: ${HOSTNAME}
|
||||||
LETSENCRYPT_HOST: ${HOSTNAME}
|
LETSENCRYPT_HOST: ${HOSTNAME}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ docker run -d \
|
|||||||
Create your own `docker-compose.yml` at your project folder.
|
Create your own `docker-compose.yml` at your project folder.
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
version: "3.8"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
database:
|
database:
|
||||||
@@ -76,6 +76,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- database:/var/lib/mysql
|
- database:/var/lib/mysql
|
||||||
restart: always
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: password
|
MYSQL_ROOT_PASSWORD: password
|
||||||
MYSQL_DATABASE: chevereto
|
MYSQL_DATABASE: chevereto
|
||||||
@@ -89,6 +93,9 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- storage:/var/www/html/images/
|
- storage:/var/www/html/images/
|
||||||
restart: always
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
database:
|
||||||
|
condition: service_healthy
|
||||||
expose:
|
expose:
|
||||||
- 80
|
- 80
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
Reference in New Issue
Block a user