diff --git a/Jenkinsfile b/Jenkinsfile index 3b4eb719e..df8d3dada 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -122,19 +122,19 @@ pipeline { sh 'rm -rf ./test/results/junit/*' sh './scripts/ci/fulltest-cypress' // Adding this here as the schema needs to come from a running stack, but this will be used by docs later - sh 'docker-compose exec -T fullstack curl -s --output /temp-docs/api-schema.json "http://fullstack:81/api/schema"' + sh 'docker compose exec -T fullstack curl -s --output /temp-docs/api-schema.json "http://fullstack:81/api/schema"' } post { always { // Dumps to analyze later sh 'mkdir -p debug/sqlite' - sh 'docker logs $(docker-compose ps --all -q fullstack) > debug/sqlite/docker_fullstack.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q stepca) > debug/sqlite/docker_stepca.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q pdns) > debug/sqlite/docker_pdns.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q pdns-db) > debug/sqlite/docker_pdns-db.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q dnsrouter) > debug/sqlite/docker_dnsrouter.log 2>&1' + sh 'docker logs $(docker compose ps --all -q fullstack) > debug/sqlite/docker_fullstack.log 2>&1' + sh 'docker logs $(docker compose ps --all -q stepca) > debug/sqlite/docker_stepca.log 2>&1' + sh 'docker logs $(docker compose ps --all -q pdns) > debug/sqlite/docker_pdns.log 2>&1' + sh 'docker logs $(docker compose ps --all -q pdns-db) > debug/sqlite/docker_pdns-db.log 2>&1' + sh 'docker logs $(docker compose ps --all -q dnsrouter) > debug/sqlite/docker_dnsrouter.log 2>&1' junit 'test/results/junit/*' - sh 'docker-compose down --remove-orphans --volumes -t 30 || true' + sh 'docker compose down --remove-orphans --volumes -t 30 || true' } } } @@ -156,13 +156,13 @@ pipeline { always { // Dumps to analyze later sh 'mkdir -p debug/mysql' - sh 'docker logs $(docker-compose ps --all -q fullstack) > debug/mysql/docker_fullstack.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q stepca) > debug/mysql/docker_stepca.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q pdns) > debug/mysql/docker_pdns.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q pdns-db) > debug/mysql/docker_pdns-db.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q dnsrouter) > debug/mysql/docker_dnsrouter.log 2>&1' + sh 'docker logs $(docker compose ps --all -q fullstack) > debug/mysql/docker_fullstack.log 2>&1' + sh 'docker logs $(docker compose ps --all -q stepca) > debug/mysql/docker_stepca.log 2>&1' + sh 'docker logs $(docker compose ps --all -q pdns) > debug/mysql/docker_pdns.log 2>&1' + sh 'docker logs $(docker compose ps --all -q pdns-db) > debug/mysql/docker_pdns-db.log 2>&1' + sh 'docker logs $(docker compose ps --all -q dnsrouter) > debug/mysql/docker_dnsrouter.log 2>&1' junit 'test/results/junit/*' - sh 'docker-compose down --remove-orphans --volumes -t 30 || true' + sh 'docker compose down --remove-orphans --volumes -t 30 || true' } } } @@ -184,18 +184,18 @@ pipeline { always { // Dumps to analyze later sh 'mkdir -p debug/postgres' - sh 'docker logs $(docker-compose ps --all -q fullstack) > debug/postgres/docker_fullstack.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q stepca) > debug/postgres/docker_stepca.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q pdns) > debug/postgres/docker_pdns.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q pdns-db) > debug/postgres/docker_pdns-db.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q dnsrouter) > debug/postgres/docker_dnsrouter.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q db-postgres) > debug/postgres/docker_db.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q authentik) > debug/postgres/docker_authentik.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q authentik-redis) > debug/postgres/docker_authentik-redis.log 2>&1' - sh 'docker logs $(docker-compose ps --all -q authentik-ldap) > debug/postgres/docker_authentik-ldap.log 2>&1' + sh 'docker logs $(docker compose ps --all -q fullstack) > debug/postgres/docker_fullstack.log 2>&1' + sh 'docker logs $(docker compose ps --all -q stepca) > debug/postgres/docker_stepca.log 2>&1' + sh 'docker logs $(docker compose ps --all -q pdns) > debug/postgres/docker_pdns.log 2>&1' + sh 'docker logs $(docker compose ps --all -q pdns-db) > debug/postgres/docker_pdns-db.log 2>&1' + sh 'docker logs $(docker compose ps --all -q dnsrouter) > debug/postgres/docker_dnsrouter.log 2>&1' + sh 'docker logs $(docker compose ps --all -q db-postgres) > debug/postgres/docker_db.log 2>&1' + sh 'docker logs $(docker compose ps --all -q authentik) > debug/postgres/docker_authentik.log 2>&1' + sh 'docker logs $(docker compose ps --all -q authentik-redis) > debug/postgres/docker_authentik-redis.log 2>&1' + sh 'docker logs $(docker compose ps --all -q authentik-ldap) > debug/postgres/docker_authentik-ldap.log 2>&1' junit 'test/results/junit/*' - sh 'docker-compose down --remove-orphans --volumes -t 30 || true' + sh 'docker compose down --remove-orphans --volumes -t 30 || true' } } } diff --git a/README.md b/README.md index a66ba16f7..e0305401e 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,6 @@ services: 3. Bring up your stack by running ```bash -docker-compose up -d - -# If using docker-compose-plugin docker compose up -d ``` diff --git a/scripts/destroy-dev b/scripts/destroy-dev index 1309aad45..262bf15b6 100755 --- a/scripts/destroy-dev +++ b/scripts/destroy-dev @@ -3,12 +3,7 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -# Ensure docker-compose exists -# Make sure docker exists -if hash docker-compose 2>/dev/null; then - cd "${DIR}/.." - echo -e "${BLUE}❯ ${CYAN}Destroying Dev Stack ...${RESET}" - docker-compose down --remove-orphans --volumes -else - echo -e "${RED}❯ docker-compose command is not available${RESET}" -fi +cd "${DIR}/.." +echo -e "${BLUE}❯ ${CYAN}Destroying Dev Stack ...${RESET}" +docker compose down --remove-orphans --volumes + diff --git a/scripts/docs-build b/scripts/docs-build index 13d061db7..d64ff52e8 100755 --- a/scripts/docs-build +++ b/scripts/docs-build @@ -3,12 +3,8 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -# Ensure docker-compose exists -if hash docker 2>/dev/null; then - cd "${DIR}/.." - echo -e "${BLUE}❯ ${CYAN}Building Docs ...${RESET}" - docker run --rm -e CI=true -v "$(pwd)/docs:/app/docs" -w /app/docs node:latest sh -c "yarn install && yarn build && chown -R $(id -u):$(id -g) /app/docs" - echo -e "${BLUE}❯ ${GREEN}Building Docs Complete${RESET}" -else - echo -e "${RED}❯ docker command is not available${RESET}" -fi +cd "${DIR}/.." +echo -e "${BLUE}❯ ${CYAN}Building Docs ...${RESET}" +docker run --rm -e CI=true -v "$(pwd)/docs:/app/docs" -w /app/docs node:latest sh -c "yarn install && yarn build && chown -R $(id -u):$(id -g) /app/docs" +echo -e "${BLUE}❯ ${GREEN}Building Docs Complete${RESET}" + diff --git a/scripts/frontend-lint b/scripts/frontend-lint index 8378c1efe..29fbc5591 100755 --- a/scripts/frontend-lint +++ b/scripts/frontend-lint @@ -3,15 +3,10 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -# Ensure docker-compose exists -if hash docker 2>/dev/null; then - cd "${DIR}/.." - echo -e "${BLUE}❯ ${CYAN}Linting Frontend ...${RESET}" - docker run --rm -e CI=true -v "$(pwd)/frontend:/app/frontend" -w /app/frontend node:lts sh -c "yarn install && yarn eslint src;chown -R $(id -u):$(id -g) /app/frontend" - RES=$? - echo -e "${BLUE}❯ ${GREEN}Linting Frontend Complete${RESET}" - exit $RES -else - echo -e "${RED}❯ docker command is not available${RESET}" - exit 1 -fi +cd "${DIR}/.." +echo -e "${BLUE}❯ ${CYAN}Linting Frontend ...${RESET}" +docker run --rm -e CI=true -v "$(pwd)/frontend:/app/frontend" -w /app/frontend node:lts sh -c "yarn install && yarn eslint src;chown -R $(id -u):$(id -g) /app/frontend" +RES=$? +echo -e "${BLUE}❯ ${GREEN}Linting Frontend Complete${RESET}" +exit $RES + diff --git a/scripts/sqlite b/scripts/sqlite index 69a54055b..ddbc951c7 100755 --- a/scripts/sqlite +++ b/scripts/sqlite @@ -3,15 +3,11 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -# Ensure docker-compose exists -if hash docker-compose 2>/dev/null; then - cd "${DIR}/.." +cd "${DIR}/.." - echo "" - inform "Tip: List tables with: \\dt" - echo "" +echo "" +inform "Tip: List tables with: \\dt" +echo "" + +docker compose exec npm usql /data/nginxproxymanager.db - docker-compose exec npm usql /data/nginxproxymanager.db -else - echo -e "${RED}❯ docker-compose command is not available${RESET}" -fi diff --git a/scripts/start-dev b/scripts/start-dev index 0411c61a3..bb5d002ad 100755 --- a/scripts/start-dev +++ b/scripts/start-dev @@ -8,49 +8,45 @@ get_container_ip () { local container_name=$1 local container local ip - container=$(docker-compose ps --all -q "${container_name}" | tail -n1) + container=$(docker compose ps --all -q "${container_name}" | tail -n1) ip=$(docker inspect -f "{{.NetworkSettings.Networks.npmdev_default.IPAddress}}" "$container") echo "$ip" } -# Ensure docker-compose exists -if hash docker-compose 2>/dev/null; then - cd "${DIR}/.." - echo -e "${BLUE}❯ ${CYAN}Starting Dev Stack ...${RESET}" +cd "${DIR}/.." +echo -e "${BLUE}❯ ${CYAN}Starting Dev Stack ...${RESET}" - # Bring up a stack, in steps so we can inject IPs everywhere - docker-compose up -d npm-pdns npm-pdns-db - PDNS_IP=$(get_container_ip 'npm-pdns') - echo -e "${BLUE}❯ ${YELLOW}PDNS IP is ${PDNS_IP}${RESET}" +# Bring up a stack, in steps so we can inject IPs everywhere +docker compose up -d npm-pdns npm-pdns-db +PDNS_IP=$(get_container_ip 'npm-pdns') +echo -e "${BLUE}❯ ${YELLOW}PDNS IP is ${PDNS_IP}${RESET}" - # adjust the dnsrouter config - LOCAL_DNSROUTER_CONFIG="$DIR/../docker/dev/dnsrouter-config.json" - rm -rf "$LOCAL_DNSROUTER_CONFIG.tmp" - # IMPORTANT: changes to dnsrouter-config.json will affect this line: - jq --arg a "$PDNS_IP" '.servers[0].upstreams[1].upstream = $a' "$LOCAL_DNSROUTER_CONFIG" > "$LOCAL_DNSROUTER_CONFIG.tmp" +# adjust the dnsrouter config +LOCAL_DNSROUTER_CONFIG="$DIR/../docker/dev/dnsrouter-config.json" +rm -rf "$LOCAL_DNSROUTER_CONFIG.tmp" +# IMPORTANT: changes to dnsrouter-config.json will affect this line: +jq --arg a "$PDNS_IP" '.servers[0].upstreams[1].upstream = $a' "$LOCAL_DNSROUTER_CONFIG" > "$LOCAL_DNSROUTER_CONFIG.tmp" - # dnsrouter - docker-compose up -d npm-dnsrouter - DNSROUTER_IP=$(get_container_ip 'npm-dnsrouter') - echo -e "${BLUE}❯ ${YELLOW}DNS Router IP is ${DNSROUTER_IP}${RESET}" +# dnsrouter +docker compose up -d npm-dnsrouter +DNSROUTER_IP=$(get_container_ip 'npm-dnsrouter') +echo -e "${BLUE}❯ ${YELLOW}DNS Router IP is ${DNSROUTER_IP}${RESET}" - # mount the resolver - LOCAL_RESOLVE="$DIR/../docker/dev/resolv.conf" - rm -rf "${LOCAL_RESOLVE}" - printf "nameserver %s\noptions ndots:0" "${DNSROUTER_IP}" > "${LOCAL_RESOLVE}" +# mount the resolver +LOCAL_RESOLVE="$DIR/../docker/dev/resolv.conf" +rm -rf "${LOCAL_RESOLVE}" +printf "nameserver %s\noptions ndots:0" "${DNSROUTER_IP}" > "${LOCAL_RESOLVE}" - # bring things up, but only what we haven't already created - docker-compose up -d --remove-orphans --force-recreate --build npm npm-pebble npm-stepca npm-swagger +# bring things up, but only what we haven't already created +docker compose up -d --remove-orphans --force-recreate --build npm npm-pebble npm-stepca npm-swagger - if [ "$1" == "-f" ]; then - echo -e "${BLUE}❯ ${YELLOW}Following Backend Container:${RESET}" - docker logs -f npm.dev - else - echo -e "${YELLOW}Tip:${RESET} You can follow the output of some of the containers with:" - echo " docker logs -f npm.dev" - echo -e "${YELLOW}Tip:${RESET} Open a database terminal with:" - echo " ./scripts/sqlite" - fi +if [ "$1" == "-f" ]; then + echo -e "${BLUE}❯ ${YELLOW}Following Backend Container:${RESET}" + docker logs -f npm.dev else - echo -e "${RED}❯ docker-compose command is not available${RESET}" + echo -e "${YELLOW}Tip:${RESET} You can follow the output of some of the containers with:" + echo " docker logs -f npm.dev" + echo -e "${YELLOW}Tip:${RESET} Open a database terminal with:" + echo " ./scripts/sqlite" fi + diff --git a/scripts/stop-dev b/scripts/stop-dev index 3d27551fe..cc820b815 100755 --- a/scripts/stop-dev +++ b/scripts/stop-dev @@ -3,12 +3,7 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -# Ensure docker-compose exists -# Make sure docker exists -if hash docker-compose 2>/dev/null; then - cd "${DIR}/.." - echo -e "${BLUE}❯ ${CYAN}Stopping Dev Stack ...${RESET}" - docker-compose down --remove-orphans -else - echo -e "${RED}❯ docker-compose command is not available${RESET}" -fi +cd "${DIR}/.." +echo -e "${BLUE}❯ ${CYAN}Stopping Dev Stack ...${RESET}" +docker compose down --remove-orphans + diff --git a/scripts/test-dev b/scripts/test-dev index eb5c5bd36..2b2ff12a8 100755 --- a/scripts/test-dev +++ b/scripts/test-dev @@ -3,11 +3,7 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -# Ensure docker-compose exists -if hash docker-compose 2>/dev/null; then - cd "${DIR}/.." - echo -e "${BLUE}❯ ${CYAN}Testing Dev Stack ...${RESET}" - docker-compose exec -T npm bash -c "cd /app/backend && task test" -else - echo -e "${RED}❯ docker-compose command is not available${RESET}" -fi +cd "${DIR}/.." +echo -e "${BLUE}❯ ${CYAN}Testing Dev Stack ...${RESET}" +docker compose exec -T npm bash -c "cd /app/backend && task test" +