diff --git a/backend/Taskfile.yml b/backend/Taskfile.yml index a73fb2e..8669dd4 100644 --- a/backend/Taskfile.yml +++ b/backend/Taskfile.yml @@ -38,9 +38,6 @@ tasks: sh: git log -n 1 --format=%h VERSION: sh: cat ../.version - env: - GO111MODULE: on - CGO_ENABLED: 1 lint: desc: Linting diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 7f34a7e..e375f9d 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -16,7 +16,9 @@ ENV GOPROXY=$GOPROXY \ ACMESH_HOME=/data/.acme.sh \ CERT_HOME=/data/.acme.sh/certs \ LE_CONFIG_HOME=/data/.acme.sh/config \ - LE_WORKING_DIR=/data/.acme.sh + LE_WORKING_DIR=/data/.acme.sh \ + CGO_ENABLED=1 \ + GO111MODULE=on RUN echo "fs.file-max = 65535" > /etc/sysctl.conf diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 44fe423..a12a269 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -4,9 +4,13 @@ services: npm: image: nginxproxymanager:dev + container_name: "npm.dev" build: - context: ./ - dockerfile: ./dev/Dockerfile + context: ../ + dockerfile: ./docker/dev/Dockerfile + args: + GOPROXY: "${GOPROXY:-}" + GOPRIVATE: "${GOPRIVATE:-}" ports: - 3080:80 - 3081:81 @@ -15,7 +19,7 @@ services: DEVELOPMENT: 'true' GOPROXY: "${GOPROXY:-}" GOPRIVATE: "${GOPRIVATE:-}" - YARN_REGISTRY: "${DAB_YARN_REGISTRY:-}" + YARN_REGISTRY: "${YARN_REGISTRY:-}" NPM_LOG_LEVEL: 'debug' PUID: 1000 PGID: 1000 @@ -23,8 +27,8 @@ services: - /etc/localtime:/etc/localtime:ro - ../:/app - ./rootfs/var/www/html:/var/www/html - - ../data:/data - ./dev/resolv.conf:/etc/resolv.conf:ro + - npm_data_vol:/data working_dir: /app networks: default: @@ -32,9 +36,21 @@ services: - website1.internal - website2.internal - website3.internal + restart: unless-stopped - pebble: + npm-stepca: + image: nginxproxymanager/testca + container_name: "npm.stepca" + volumes: + - ./dev/resolv.conf:/etc/resolv.conf:ro + networks: + default: + aliases: + - ca.internal + + npm-pebble: image: letsencrypt/pebble + container_name: "npm.pebble" command: pebble -config /test/config/pebble-config.json environment: PEBBLE_VA_SLEEPTIME: 2 @@ -47,17 +63,20 @@ services: # required for https cert dns san - pebble - stepca: - image: nginxproxymanager/testca - volumes: - - ./dev/resolv.conf:/etc/resolv.conf:ro - networks: - default: - aliases: - - ca.internal + npm-swagger: + image: swaggerapi/swagger-ui:latest + container_name: "npm.swagger" + ports: + - 3001:80 + environment: + URL: "http://${SWAGGER_PUBLIC_DOMAIN:-127.0.0.1:3081}/api/schema" + PORT: '80' + depends_on: + - npm - pdns: + npm-pdns: image: pschiffe/pdns-mysql + container_name: "npm.pdns" volumes: - '/etc/localtime:/etc/localtime:ro' environment: @@ -71,45 +90,38 @@ services: PDNS_version_string: 'anonymous' PDNS_default_ttl: 1500 PDNS_allow_axfr_ips: '127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8' - PDNS_gmysql_host: pdns-db + PDNS_gmysql_host: npm-pdns-db PDNS_gmysql_port: 3306 PDNS_gmysql_user: pdns PDNS_gmysql_password: pdns PDNS_gmysql_dbname: pdns depends_on: - - pdns-db + - npm-pdns-db networks: default: aliases: - ns1.pdns - ns2.pdns - pdns-db: + npm-pdns-db: image: mariadb:10.7.1 + container_name: "npm.pdns.db" environment: MYSQL_ROOT_PASSWORD: 'pdns' MYSQL_DATABASE: 'pdns' MYSQL_USER: 'pdns' MYSQL_PASSWORD: 'pdns' volumes: - - pdns_mysql_vol:/var/lib/mysql + - npm_pdns_mysql_vol:/var/lib/mysql - /etc/localtime:/etc/localtime:ro - ./dev/pdns-db.sql:/docker-entrypoint-initdb.d/01_init.sql:ro - dnsrouter: + npm-dnsrouter: image: jc21/dnsrouter + container_name: "npm.dnsrouter" volumes: - ./dev/dnsrouter-config.json.tmp:/dnsrouter-config.json:ro - swagger: - image: swaggerapi/swagger-ui:latest - ports: - - 3001:80 - environment: - URL: "http://${SWAGGER_PUBLIC_DOMAIN:-127.0.0.1:3081}/api/schema" - PORT: '80' - depends_on: - - npm - volumes: - pdns_mysql_vol: + npm_data_vol: + npm_pdns_mysql_vol: diff --git a/scripts/start-dev b/scripts/start-dev index 857012d..2722beb 100755 --- a/scripts/start-dev +++ b/scripts/start-dev @@ -19,8 +19,8 @@ if hash docker-compose 2>/dev/null; then echo -e "${BLUE}❯ ${CYAN}Starting Dev Stack ...${RESET}" # Bring up a stack, in steps so we can inject IPs everywhere - docker-compose up -d pdns pdns-db - PDNS_IP=$(get_container_ip "pdns") + 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 @@ -30,8 +30,8 @@ if hash docker-compose 2>/dev/null; then jq --arg a "$PDNS_IP" '.servers[0].upstreams[1].upstream = $a' "$LOCAL_DNSROUTER_CONFIG" > "$LOCAL_DNSROUTER_CONFIG.tmp" # dnsrouter - docker-compose up -d dnsrouter - DNSROUTER_IP=$(get_container_ip '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 @@ -40,14 +40,14 @@ if hash docker-compose 2>/dev/null; then 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 pebble stepca swagger + 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 npmdev-npm-1 + 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 npmdev-npm-1" + echo " docker logs -f npm.dev" echo -e "${YELLOW}Tip:${RESET} Open a database terminal with:" echo " ./scripts/sqlite" fi