Fixes for start-dev and optimisations

This commit is contained in:
Jamie Curnow 2023-02-25 22:52:42 +10:00
parent bc3d9ec099
commit 6b7ae48570
No known key found for this signature in database
GPG Key ID: FFBB624C43388E9E
4 changed files with 52 additions and 41 deletions

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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