diff --git a/.circleci/config.yml b/.circleci/config.yml index 3ab6077a..1d5e92f7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,9 +1,5 @@ version: 2.1 -notify: - webhooks: - - url: 'https://webhooks.gitter.im/e/cc6aefa009b39156b845' - workflows: version: 2 @@ -46,32 +42,23 @@ jobs: Shfmt: docker: - - image: golang:1.12 + - image: mvdan/shfmt:v3-alpine steps: - checkout - - run: - name: install - command: go get mvdan.cc/sh/cmd/shfmt - - run: name: check command: shfmt -d -ln=posix -s . GolangCI-Lint: docker: - - image: golang:1.12 + - image: golangci/golangci-lint:v1.57.1 steps: - checkout - - run: - name: install - command: | - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b $GOPATH/bin v1.15.0 - - run: name: get deps - command: go mod download + command: cd completion && go mod download environment: GO111MODULE: 'on' @@ -79,12 +66,12 @@ jobs: name: check command: | ./scripts/compgen.sh - cd completion && golangci-lint run --deadline 4m --enable-all --disable dupl,lll,gochecknoglobals,gochecknoinits + cd completion && golangci-lint run --timeout 4m --enable-all --disable dupl,lll,gochecknoglobals,gochecknoinits,depguard,exhaustivestruct,exhaustruct,gomnd,varnamelen,nonamedreturns,wsl,ireturn,gofumpt 'Danger Automated Code Review': docker: - - image: circleci/node:latest + - image: cimg/node:lts steps: - checkout @@ -100,16 +87,22 @@ jobs: - checkout - run: - name: Install Docker Compose + name: Install Docker Compose v2 command: | - curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + curl -sSL "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o ~/docker-compose + mkdir -p ~/.docker/cli-plugins chmod +x ~/docker-compose - sudo mv ~/docker-compose /usr/local/bin/docker-compose + mv ~/docker-compose ~/.docker/cli-plugins/docker-compose - run: name: Build Image command: ./scripts/build.sh + - run: + name: Create tmp folder + command: + mkdir -p /tmp + - run: name: Smoke Tests command: script -qec './scripts/test.sh' @@ -119,6 +112,7 @@ jobs: - store_test_results: path: /tmp/dab/test_results + - run: name: Clear test results when: on_fail @@ -133,6 +127,7 @@ jobs: - store_test_results: path: /tmp/dab/test_results + - run: name: Clear test results when: on_fail @@ -145,11 +140,12 @@ jobs: - checkout - run: - name: Install Docker Compose + name: Install Docker Compose v2 command: | - curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + curl -sSL "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o ~/docker-compose + mkdir -p ~/.docker/cli-plugins chmod +x ~/docker-compose - sudo mv ~/docker-compose /usr/local/bin/docker-compose + mv ~/docker-compose ~/.docker/cli-plugins/docker-compose - run: name: UX Regression Tests @@ -159,6 +155,7 @@ jobs: - store_test_results: path: /tmp/dab/test_results + - run: name: Clear test results when: on_fail @@ -171,12 +168,12 @@ jobs: - checkout - run: - name: Install Docker Compose + name: Install Docker Compose v2 command: | - curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + curl -sSL "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o ~/docker-compose + mkdir -p ~/.docker/cli-plugins chmod +x ~/docker-compose - sudo mv ~/docker-compose /usr/local/bin/docker-compose - + mv ~/docker-compose ~/.docker/cli-plugins/docker-compose - run: name: Profile diff --git a/.gitignore b/.gitignore index 2cb9a791..4c4766e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.idea + /tests/vendor /tests/node_modules /completion/completion diff --git a/Dockerfile b/Dockerfile index f97aabe1..3352a4ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Stage for compiling shell completion binary. -FROM golang:1.12 AS completion +FROM golang:1.22 AS completion WORKDIR $GOPATH/src/app/completion @@ -17,10 +17,11 @@ RUN cd ../ \ && ./compgen.sh ENV CGO_ENABLED=0 \ - GOARCH=386 + GOARCH=amd64 RUN GOOS=linux go build -a -installsuffix cgo -ldflags='-w -s' -o /usr/bin/dab-completion-linux . RUN GOOS=darwin go build -a -installsuffix cgo -ldflags='-w -s' -o /usr/bin/dab-completion-darwin . +RUN GOOS=darwin GOARCH=arm64 go build -a -installsuffix cgo -ldflags='-w -s' -o /usr/bin/dab-completion-m1 . # This phase generates versioning artifacts from git. @@ -69,15 +70,15 @@ LABEL org.label-schema.schema-version="1.0" \ # they are to be kept at a lower layer for caching. RUN apk add --no-cache --virtual .toolchain \ python3-dev libffi-dev openssl-dev build-base \ - && apk add --no-cache docker-cli python3 py3-pip py3-cryptography \ + && apk add --no-cache asciinema docker-cli docker-cli-buildx docker-cli-compose python3 py3-pip py3-cryptography \ && rm -f /usr/bin/dockerd /usr/bin/docker-containerd* \ - && pip3 install "docker-compose>=1.24.0,<1.25.0" asciinema \ && apk del .toolchain \ && rm -rf ~/.cache # Misc tools required for scripts. RUN apk add --no-cache git openssh tree util-linux jq nss-tools multitail ca-certificates highlight libintl entr postgresql-client task bash \ - && pip3 install yq \ + && wget -O /usr/bin/yq https://github.com/mikefarah/yq/releases/download/v4.44.1/yq_linux_amd64 \ + && chmod +x /usr/bin/yq \ && echo "check_mail:0" >> /etc/multitail.conf \ && chmod 666 /etc/passwd diff --git a/README.md b/README.md index 46bf74b8..973c3168 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ The following projects are used to write dab: - [docker-compose-gen][9] - [yq][10] - [jq][11] -- [docker-compose][12] +- [docker compose][12] - [shellcheck][13] - [complete][14] diff --git a/app/bin/dar-link-dest b/app/bin/dar-link-dest index 8adf5eda..ffceac61 100755 --- a/app/bin/dar-link-dest +++ b/app/bin/dar-link-dest @@ -1,4 +1,4 @@ #!/bin/sh -export HOST_PWD=$PWD +export HOST_PWD="$PWD" exec dab apps run "$(basename "$0")" "$@" diff --git a/app/bin/maybe_update_wrapper b/app/bin/maybe_update_wrapper index 1140d7ac..caff3c00 100755 --- a/app/bin/maybe_update_wrapper +++ b/app/bin/maybe_update_wrapper @@ -5,10 +5,12 @@ file_hash() { "${FILE_HASH_ALGO:-md5}sum" "$1" | cut -d' ' -f1 } -if [ "${DAB_AUTOUPDATE:-true}" = 'false' ] || [ "${DAB_AUTOUPDATE_WRAPPER:-true}" = 'false' ] || ! [ -f /tmp/wrapper ] || ! [ -f "$DAB/dab" ]; then +DAB_WRAPPER_FILENAME="$(basename "$DAB_WRAPPER_PATH")" + +if [ "${DAB_AUTOUPDATE:-true}" = 'false' ] || [ "${DAB_AUTOUPDATE_WRAPPER:-true}" = 'false' ] || ! [ -f "/tmp/wrapper/$DAB_WRAPPER_FILENAME" ] || ! [ -f "$DAB/dab" ]; then return 0 -elif [ -r /tmp/wrapper ] && [ -r "$DAB/dab" ] && [ "$(file_hash "$DAB/dab")" != "$(file_hash /tmp/wrapper)" ]; then - if cat "$DAB/dab" >/tmp/wrapper; then +elif [ -r "/tmp/wrapper/$DAB_WRAPPER_FILENAME" ] && [ -r "$DAB/dab" ] && [ "$(file_hash "$DAB/dab")" != "$(file_hash "/tmp/wrapper/$DAB_WRAPPER_FILENAME")" ]; then + if cat "$DAB/dab" >"/tmp/wrapper/$DAB_WRAPPER_FILENAME"; then warn "Dab wrapper script at $DAB_WRAPPER_PATH was updated!" else error "Dab wrapper script at $DAB_WRAPPER_PATH could NOT be automatically updated!" diff --git a/app/bin/query_user b/app/bin/query_user index cffc88b5..eeb5cea8 100755 --- a/app/bin/query_user +++ b/app/bin/query_user @@ -5,7 +5,7 @@ set -eu message="${1:-Are you sure you would like to proceed?}" while true; do - # shellcheck disable=SC2039 + # shellcheck disable=SC3045 read -r -p "$message " yn case $yn in [Yy]*) return 0 ;; diff --git a/app/docker/Dockerfile.ansible b/app/docker/Dockerfile.ansible index 119b26a6..fba1eb84 100644 --- a/app/docker/Dockerfile.ansible +++ b/app/docker/Dockerfile.ansible @@ -1,18 +1,23 @@ FROM alpine:3.10.0 RUN apk add --no-cache --virtual build-dependencies \ - gcc musl-dev libffi-dev openssl-dev python-dev \ + gcc musl-dev libffi-dev openssl-dev python3-dev \ && apk add --no-cache \ - bash curl tar openssh-client sshpass git python py-boto py-dateutil \ + bash curl tar openssh-client sshpass git python3 py-boto py-dateutil \ py-httplib2 py-jinja2 py-paramiko py-pip ca-certificates docker \ - && pip install python-keyczar docker-compose + && python3 -m pip install --upgrade pip \ + && pip install python-keyczar + +RUN DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} \ + mkdir -p $DOCKER_CONFIG/cli-plugins +ADD https://github.com/docker/compose/releases/download/v2.25.0/docker-compose-linux-x86_64 $HOME/.docker/cli-plugins/docker-compose RUN mkdir -p /etc/ansible /ansible/playbooks \ && echo "[local]" >> /etc/ansible/hosts \ && echo "localhost" >> /etc/ansible/hosts WORKDIR /ansible/playbooks -ARG ANSIBLE_VERSION=2.7.1 +ARG ANSIBLE_VERSION=2.11 ENV ANSIBLE_VERSION="${ANSIBLE_VERSION}" \ ANSIBLE_GATHERING=smart \ ANSIBLE_HOST_KEY_CHECKING=false \ diff --git a/app/docker/Dockerfile.cartography b/app/docker/Dockerfile.cartography index 23c366b4..4604a3c3 100644 --- a/app/docker/Dockerfile.cartography +++ b/app/docker/Dockerfile.cartography @@ -1,5 +1,6 @@ FROM python:3 -RUN pip install cartography +RUN python3 -m pip install --upgrade pip && \ + pip install cartography ENTRYPOINT ["/usr/local/bin/cartography","--neo4j-uri=bolt://neo4j:7687"] diff --git a/app/docker/Dockerfile.cyberchef b/app/docker/Dockerfile.cyberchef index a6a4cea1..d7e949e6 100644 --- a/app/docker/Dockerfile.cyberchef +++ b/app/docker/Dockerfile.cyberchef @@ -1,4 +1,7 @@ ARG NGINX_TAG=alpine FROM "nginx:$NGINX_TAG" -ADD --chown=nginx:nginx https://gchq.github.io/CyberChef/cyberchef.htm /usr/share/nginx/html/index.html +WORKDIR /usr/share/nginx/html + +RUN wget -qO- https://github.com/gchq/CyberChef/releases/download/v10.8.2/CyberChef_v10.8.2.zip \ + | busybox unzip - && chown nginx:nginx * -R diff --git a/app/docker/Dockerfile.dive b/app/docker/Dockerfile.dive index e7b45ac5..25408cd2 100644 --- a/app/docker/Dockerfile.dive +++ b/app/docker/Dockerfile.dive @@ -1,5 +1,5 @@ -FROM centos:latest +FROM rockylinux:9 -ARG DIVE_VERSION=0.4.1 +ARG DIVE_VERSION=0.12.0 RUN yum install -y "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm" ENTRYPOINT ["/usr/local/bin/dive"] diff --git a/app/docker/Dockerfile.fn b/app/docker/Dockerfile.fn index e546060a..51affdea 100644 --- a/app/docker/Dockerfile.fn +++ b/app/docker/Dockerfile.fn @@ -13,13 +13,15 @@ RUN apt-get update \ curl \ gnupg2 \ software-properties-common \ - && curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \ - && add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/debian \ - $(lsb_release -cs) \ - stable" \ + && install -m 0755 -d /etc/apt/keyrings \ + && curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc \ + && chmod a+r /etc/apt/keyrings/docker.asc \ + && echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null \ && apt-get update \ - && apt-get install -y docker-ce \ + && apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \ && rm -rf /var/lib/apt/lists/* COPY --from=download /usr/bin/fn /usr/bin/fn diff --git a/app/docker/Dockerfile.remote_syslog2 b/app/docker/Dockerfile.remote_syslog2 index d027d6de..d0ca4e7d 100644 --- a/app/docker/Dockerfile.remote_syslog2 +++ b/app/docker/Dockerfile.remote_syslog2 @@ -1,7 +1,6 @@ FROM golang:latest -RUN go get -d -v github.com/papertrail/remote_syslog2 \ - && go install github.com/papertrail/remote_syslog2 +RUN go install github.com/papertrail/remote_syslog2 COPY configs/remote_syslog2.yml /etc/log_files.yml diff --git a/app/docker/Dockerfile.sam b/app/docker/Dockerfile.sam index 03a3c028..468b686d 100644 --- a/app/docker/Dockerfile.sam +++ b/app/docker/Dockerfile.sam @@ -1,3 +1,3 @@ FROM python:3 -RUN pip install awscli aws-sam-cli +RUN pip install awscliv2 aws-sam-cli diff --git a/app/docker/Dockerfile.vault b/app/docker/Dockerfile.vault index 837e996f..3bc7b7d7 100644 --- a/app/docker/Dockerfile.vault +++ b/app/docker/Dockerfile.vault @@ -1,5 +1,5 @@ ARG VAULT_TAG=latest -FROM "vault:$VAULT_TAG" +FROM "hashicorp/vault:$VAULT_TAG" COPY configs/vault.hcl /vault/config/ diff --git a/app/docker/Dockerfile.xsstrike b/app/docker/Dockerfile.xsstrike index af0f78b1..13e20fff 100644 --- a/app/docker/Dockerfile.xsstrike +++ b/app/docker/Dockerfile.xsstrike @@ -1,6 +1,6 @@ FROM alpine:latest -RUN apk add --no-cache ca-certificates python3 py3-pip git \ +RUN apk add --no-cache ca-certificates python3 py3-pip git \ && update-ca-certificates ARG XSSTRIKE_VERSION=3.0.3 @@ -12,6 +12,6 @@ RUN mkdir -p /opt \ && git checkout ${XSSTRIKE_VERSION} \ && chmod +x xsstrike.py -RUN pip3 install -r /opt/xsstrike/requirements.txt +RUN pip3 install --break-system-packages -r /opt/xsstrike/requirements.txt ENTRYPOINT ["/opt/xsstrike/xsstrike.py"] diff --git a/app/docker/configs/docker-gen/templates/telegraf.conf.tmpl b/app/docker/configs/docker-gen/templates/telegraf.conf.tmpl index 21f4ac6f..817a8286 100644 --- a/app/docker/configs/docker-gen/templates/telegraf.conf.tmpl +++ b/app/docker/configs/docker-gen/templates/telegraf.conf.tmpl @@ -62,7 +62,7 @@ ## Precision will NOT be used for service inputs. It is up to each individual ## service input to set the timestamp at the appropriate precision. ## Valid time units are "ns", "us" (or "µs"), "ms", "s". - precision = "s" + precision = "1s" ## Logging configuration: ## Run telegraf with debug log messages. @@ -112,8 +112,8 @@ # timeout = "5s" ## HTTP Basic Auth - # username = "telegraf" - # password = "metricsmetricsmetricsmetrics" + username = "root" + password = "root" ## HTTP User-Agent # user_agent = "telegraf" @@ -508,7 +508,7 @@ # # ## Whether to report for each container per-device blkio (8:0, 8:1...) and # ## network (eth0, eth1, ...) stats or not -# perdevice = true +# perdevice_include = true # ## Whether to report for each container total blkio and network stats or not # total = false # ## Which environment variables should we use as a tag @@ -587,7 +587,7 @@ # HTTP/HTTPS request given an address a method and a timeout [[inputs.http_response]] ## Server address (default http://localhost) - address = "http://tick:8888" + urls = ["http://tick:8888"] ## Set http_proxy (telegraf uses the system wide proxy settings if it's is not set) # http_proxy = "http://localhost:8888" @@ -922,7 +922,7 @@ ############################################################################### # Influx HTTP write listener -[[inputs.http_listener]] +[[inputs.http_listener_v2]] ## Address and port to host HTTP listener on service_address = ":8086" @@ -1006,7 +1006,7 @@ ## Parses tags in the datadog statsd format ## http://docs.datadoghq.com/guides/dogstatsd/ - parse_data_dog_tags = true + datadog_extensions = true ## Statsd data translation templates, more info can be read here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md#graphite diff --git a/app/docker/docker-compose.adminer.yml b/app/docker/docker-compose.adminer.yml index cac64738..255eca37 100644 --- a/app/docker/docker-compose.adminer.yml +++ b/app/docker/docker-compose.adminer.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: adminer: @@ -25,5 +24,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.ansible.yml b/app/docker/docker-compose.ansible.yml index 786eda36..9f464663 100644 --- a/app/docker/docker-compose.ansible.yml +++ b/app/docker/docker-compose.ansible.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: ansible: @@ -8,7 +7,7 @@ services: context: . dockerfile: Dockerfile.ansible args: - - "ANSIBLE_VERSION=${DAB_APPS_ANSIBLE_VERSION:-2.7.1}" + - "ANSIBLE_VERSION=${DAB_APPS_ANSIBLE_VERSION:-2.11.0}" labels: description: 'Automated configuration management' env_file: @@ -33,8 +32,7 @@ services: volumes: logs: - external: - name: dab_logs + name: dab_logs networks: default: diff --git a/app/docker/docker-compose.aws.yml b/app/docker/docker-compose.aws.yml index c58c79ab..1686850d 100644 --- a/app/docker/docker-compose.aws.yml +++ b/app/docker/docker-compose.aws.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: aws: @@ -19,7 +18,7 @@ services: - "$HOST_PWD:$HOST_PWD" working_dir: "$HOST_PWD" entrypoint: - - /usr/local/bin/aws + - /usr/local/bin/awsv2 command: '--help' networks: diff --git a/app/docker/docker-compose.ballerina.yml b/app/docker/docker-compose.ballerina.yml index cc21542f..7b70050c 100644 --- a/app/docker/docker-compose.ballerina.yml +++ b/app/docker/docker-compose.ballerina.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: ballerina: diff --git a/app/docker/docker-compose.burrow.yml b/app/docker/docker-compose.burrow.yml deleted file mode 100644 index 542a703c..00000000 --- a/app/docker/docker-compose.burrow.yml +++ /dev/null @@ -1,37 +0,0 @@ -version: '3.5' - -services: - - burrow: - container_name: dab_burrow - image: 'nekroze/burrow:latest' - labels: - description: 'Kafka Consumer Lag Checking' - com.centurylinklabs.watchtower.enable: 'true' - env_file: - - /tmp/denvmux/burrow.env - environment: - BURROW_ZOOKEEPER_SERVERS: "${DAB_APPS_BURROW_TARGET_ZOOKEEPER:-zookeeper}:2181" - BURROW_CLUSTER_LOCAL_SERVERS: "${DAB_APPS_BURROW_TARGET_KAFKA:-kafka}:9092" - BURROW_CONSUMER_LOCAL_SERVERS: "${DAB_APPS_BURROW_TARGET_KAFKA:-kafka}:9092" - BURROW_CONSUMER_LOCAL_GROUP-BLACKLIST: '^(console-consumer-|python-kafka-consumer-).*$$' - BURROW_CONSUMER_LOCAL_ZK_SERVERS: "${DAB_APPS_BURROW_TARGET_ZOOKEEPER:-zookeeper}:2181" - BURROW_CONSUMER_LOCAL_ZK_GROUP-BLACKLIST: '^(console-consumer-|python-kafka-consumer-).*$$' - depends_on: - - kafka - - zookeeper - networks: - - default - - lab - expose: - - 8000 - ports: - - 8000 - restart: on-failure - -networks: - default: - name: dab_apps - lab: - external: - name: lab diff --git a/app/docker/docker-compose.cartography.yml b/app/docker/docker-compose.cartography.yml index 7150c464..88a5b137 100644 --- a/app/docker/docker-compose.cartography.yml +++ b/app/docker/docker-compose.cartography.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: cartography: diff --git a/app/docker/docker-compose.cfssl.yml b/app/docker/docker-compose.cfssl.yml index 954a4841..6cbe30fa 100644 --- a/app/docker/docker-compose.cfssl.yml +++ b/app/docker/docker-compose.cfssl.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: cfssl: diff --git a/app/docker/docker-compose.chronograf.yml b/app/docker/docker-compose.chronograf.yml index 839c5cf4..3da771d9 100644 --- a/app/docker/docker-compose.chronograf.yml +++ b/app/docker/docker-compose.chronograf.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: chronograf: diff --git a/app/docker/docker-compose.consul.yml b/app/docker/docker-compose.consul.yml index 945c9681..0d7556c4 100644 --- a/app/docker/docker-compose.consul.yml +++ b/app/docker/docker-compose.consul.yml @@ -1,10 +1,9 @@ -version: '3.5' - +--- services: consul: container_name: dab_consul - image: "consul:${DAB_APPS_CONSUL_TAG:-latest}" + image: "hashicorp/consul:${DAB_APPS_CONSUL_TAG:-latest}" restart: on-failure labels: description: 'Services discovery and key value store' diff --git a/app/docker/docker-compose.couchdb.yml b/app/docker/docker-compose.couchdb.yml index d8444c74..33780aec 100644 --- a/app/docker/docker-compose.couchdb.yml +++ b/app/docker/docker-compose.couchdb.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: couchdb: @@ -28,5 +27,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.cyberchef.yml b/app/docker/docker-compose.cyberchef.yml index 3bb6600e..5a9b4c3f 100644 --- a/app/docker/docker-compose.cyberchef.yml +++ b/app/docker/docker-compose.cyberchef.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: cyberchef: diff --git a/app/docker/docker-compose.deck-chores.yml b/app/docker/docker-compose.deck-chores.yml index aac3b3b2..7940d15a 100644 --- a/app/docker/docker-compose.deck-chores.yml +++ b/app/docker/docker-compose.deck-chores.yml @@ -1,10 +1,9 @@ -version: '3.5' - +--- services: deck-chores: container_name: dab_deck-chores - image: "funkyfuture/deck-chores:${DAB_APPS_DECK_CHORES_LABEL:-latest}" + image: "ghcr.io/funkyfuture/deck-chores:${DAB_APPS_DECK_CHORES_LABEL:-1}" network_mode: none restart: always labels: diff --git a/app/docker/docker-compose.dive.yml b/app/docker/docker-compose.dive.yml index 468f3518..a9f30c09 100644 --- a/app/docker/docker-compose.dive.yml +++ b/app/docker/docker-compose.dive.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: dive: diff --git a/app/docker/docker-compose.docker-gen.yml b/app/docker/docker-compose.docker-gen.yml index 846ee006..b75bda9d 100644 --- a/app/docker/docker-compose.docker-gen.yml +++ b/app/docker/docker-compose.docker-gen.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: docker-gen: diff --git a/app/docker/docker-compose.elasticsearch.yml b/app/docker/docker-compose.elasticsearch.yml index bfefed9a..2a490669 100644 --- a/app/docker/docker-compose.elasticsearch.yml +++ b/app/docker/docker-compose.elasticsearch.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: elasticsearch: @@ -30,5 +29,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.fn.yml b/app/docker/docker-compose.fn.yml index 4318c2df..6e61b8f3 100644 --- a/app/docker/docker-compose.fn.yml +++ b/app/docker/docker-compose.fn.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: fn: diff --git a/app/docker/docker-compose.gaia.yml b/app/docker/docker-compose.gaia.yml index 0670ea38..af4f9556 100644 --- a/app/docker/docker-compose.gaia.yml +++ b/app/docker/docker-compose.gaia.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: gaia: @@ -30,5 +29,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.go.yml b/app/docker/docker-compose.go.yml index 25cc8e79..3f22a4b9 100644 --- a/app/docker/docker-compose.go.yml +++ b/app/docker/docker-compose.go.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: go: diff --git a/app/docker/docker-compose.grafana.yml b/app/docker/docker-compose.grafana.yml index b8a315cc..9e4638b5 100644 --- a/app/docker/docker-compose.grafana.yml +++ b/app/docker/docker-compose.grafana.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: grafana: diff --git a/app/docker/docker-compose.huginn.yml b/app/docker/docker-compose.huginn.yml index 3da2733f..282971ed 100644 --- a/app/docker/docker-compose.huginn.yml +++ b/app/docker/docker-compose.huginn.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: huginn: diff --git a/app/docker/docker-compose.influxdb.yml b/app/docker/docker-compose.influxdb.yml index 062724ce..f6333822 100644 --- a/app/docker/docker-compose.influxdb.yml +++ b/app/docker/docker-compose.influxdb.yml @@ -1,10 +1,9 @@ -version: '3.5' - +--- services: influxdb: container_name: dab_influxdb - image: "influxdb:${DAB_APPS_INFLUXDB_TAG:-alpine}" + image: "influxdb:${DAB_APPS_INFLUXDB_TAG:-1.8-alpine}" restart: on-failure labels: description: 'Time series database from the TICK stack' @@ -17,6 +16,7 @@ services: INFLUXDB_HTTP_PPROF_ENABLED: 'false' volumes: - influxdb:/var/lib/influxdb + - /var/run/docker.sock:/var/run/docker.sock:ro healthcheck: test: 'wget --spider http://localhost:8086/ping || exit 1' interval: 30s @@ -35,5 +35,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.kafka-rest.yml b/app/docker/docker-compose.kafka-rest.yml index d0e70130..f7642a24 100644 --- a/app/docker/docker-compose.kafka-rest.yml +++ b/app/docker/docker-compose.kafka-rest.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kafka-rest: diff --git a/app/docker/docker-compose.kafka-topics-ui.yml b/app/docker/docker-compose.kafka-topics-ui.yml index cdbaf590..6caab4b7 100644 --- a/app/docker/docker-compose.kafka-topics-ui.yml +++ b/app/docker/docker-compose.kafka-topics-ui.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kafka-topics-ui: diff --git a/app/docker/docker-compose.kafka.yml b/app/docker/docker-compose.kafka.yml index 4738e4cf..10d708a2 100644 --- a/app/docker/docker-compose.kafka.yml +++ b/app/docker/docker-compose.kafka.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kafka: @@ -26,5 +25,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.kafkacat.yml b/app/docker/docker-compose.kafkacat.yml index 2696cca3..f7bca051 100644 --- a/app/docker/docker-compose.kafkacat.yml +++ b/app/docker/docker-compose.kafkacat.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kafkacat: @@ -21,5 +20,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.kafkaview.yml b/app/docker/docker-compose.kafkaview.yml index 0d5282ff..28c434c3 100644 --- a/app/docker/docker-compose.kafkaview.yml +++ b/app/docker/docker-compose.kafkaview.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kafkaview: @@ -25,5 +24,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.kapacitor.yml b/app/docker/docker-compose.kapacitor.yml index 5b929cba..18913201 100644 --- a/app/docker/docker-compose.kapacitor.yml +++ b/app/docker/docker-compose.kapacitor.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kapacitor: diff --git a/app/docker/docker-compose.kibana.yml b/app/docker/docker-compose.kibana.yml index 76a404ca..6d3ef0af 100644 --- a/app/docker/docker-compose.kibana.yml +++ b/app/docker/docker-compose.kibana.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kibana: diff --git a/app/docker/docker-compose.kubernetes.yml b/app/docker/docker-compose.kubernetes.yml index 018a5f54..dec8b352 100644 --- a/app/docker/docker-compose.kubernetes.yml +++ b/app/docker/docker-compose.kubernetes.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: kubernetes: @@ -55,5 +54,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.localstack.yml b/app/docker/docker-compose.localstack.yml index 7a2df22e..3fb64532 100644 --- a/app/docker/docker-compose.localstack.yml +++ b/app/docker/docker-compose.localstack.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: localstack: @@ -25,7 +24,7 @@ services: LAMBDA_DOCKER_NETWORK: 'lab' DOCKER_HOST: 'unix:///var/run/docker.sock' tmpfs: - - /tmp/localstack + - /tmp volumes: - '/var/run/docker.sock:/var/run/docker.sock' @@ -33,5 +32,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.logspout.yml b/app/docker/docker-compose.logspout.yml index 7a125615..8a85b880 100644 --- a/app/docker/docker-compose.logspout.yml +++ b/app/docker/docker-compose.logspout.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: logspout: diff --git a/app/docker/docker-compose.mailhog.yml b/app/docker/docker-compose.mailhog.yml index cfb4c753..5cb2a7d7 100644 --- a/app/docker/docker-compose.mailhog.yml +++ b/app/docker/docker-compose.mailhog.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: mailhog: @@ -33,5 +32,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.memcached.yml b/app/docker/docker-compose.memcached.yml index 4c3c7045..ebe6a00d 100644 --- a/app/docker/docker-compose.memcached.yml +++ b/app/docker/docker-compose.memcached.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: memcached: @@ -22,5 +21,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.minio.yml b/app/docker/docker-compose.minio.yml index 62213493..92b9c359 100644 --- a/app/docker/docker-compose.minio.yml +++ b/app/docker/docker-compose.minio.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: minio: @@ -36,5 +35,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.mitmproxy.yml b/app/docker/docker-compose.mitmproxy.yml index 4832a612..5afab785 100644 --- a/app/docker/docker-compose.mitmproxy.yml +++ b/app/docker/docker-compose.mitmproxy.yml @@ -1,10 +1,9 @@ -version: '3.5' - +--- services: mitmproxy: container_name: dab_mitmproxy - image: "mitmproxy/mitmproxy:${DAB_APPS_MITMPROXY_TAG:-latest}" + image: "mitmproxy/mitmproxy:${DAB_APPS_MITMPROXY_TAG:-6.0.2}" labels: description: 'HTTP debuging swiss-army knife, connect and go to http://mitm.it to load certs' com.centurylinklabs.watchtower.enable: 'true' @@ -32,5 +31,5 @@ services: networks: lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.mysql.yml b/app/docker/docker-compose.mysql.yml index 4b8f4cd8..02c80629 100644 --- a/app/docker/docker-compose.mysql.yml +++ b/app/docker/docker-compose.mysql.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: mysql: @@ -29,5 +28,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.nats.yml b/app/docker/docker-compose.nats.yml index f0878150..1d85656e 100644 --- a/app/docker/docker-compose.nats.yml +++ b/app/docker/docker-compose.nats.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: nats: diff --git a/app/docker/docker-compose.neo4j.yml b/app/docker/docker-compose.neo4j.yml index f098160f..8721a618 100644 --- a/app/docker/docker-compose.neo4j.yml +++ b/app/docker/docker-compose.neo4j.yml @@ -1,10 +1,9 @@ -version: '3.5' - +--- services: neo4j: container_name: dab_neo4j - image: "neo4j:${DAB_APPS_NEO4j_TAG:-3.3}" + image: "neo4j:${DAB_APPS_NEO4j_TAG:-4.4}" labels: description: 'Robust graph database' com.centurylinklabs.watchtower.enable: 'true' @@ -31,5 +30,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + name: lab + external: true diff --git a/app/docker/docker-compose.nikto.yml b/app/docker/docker-compose.nikto.yml index 6e942618..f2679630 100644 --- a/app/docker/docker-compose.nikto.yml +++ b/app/docker/docker-compose.nikto.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: nikto: @@ -18,7 +17,7 @@ services: networks: lab: - external: - name: lab + external: true + name: lab default: name: dab_apps diff --git a/app/docker/docker-compose.node.yml b/app/docker/docker-compose.node.yml index 82952434..84294d9a 100644 --- a/app/docker/docker-compose.node.yml +++ b/app/docker/docker-compose.node.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: node: diff --git a/app/docker/docker-compose.npm.yml b/app/docker/docker-compose.npm.yml index 97e98010..e37080b9 100644 --- a/app/docker/docker-compose.npm.yml +++ b/app/docker/docker-compose.npm.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: npm: diff --git a/app/docker/docker-compose.ntopng.yml b/app/docker/docker-compose.ntopng.yml index 684f7d78..bff7606d 100644 --- a/app/docker/docker-compose.ntopng.yml +++ b/app/docker/docker-compose.ntopng.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: ntopng: diff --git a/app/docker/docker-compose.openvas.yml b/app/docker/docker-compose.openvas.yml index ab980d30..49a6bd86 100644 --- a/app/docker/docker-compose.openvas.yml +++ b/app/docker/docker-compose.openvas.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: openvas: diff --git a/app/docker/docker-compose.pgadmin.yml b/app/docker/docker-compose.pgadmin.yml index 367aa031..0c86787e 100644 --- a/app/docker/docker-compose.pgadmin.yml +++ b/app/docker/docker-compose.pgadmin.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: pgadmin: @@ -31,5 +30,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.pgweb.yml b/app/docker/docker-compose.pgweb.yml index b32db943..ec326482 100644 --- a/app/docker/docker-compose.pgweb.yml +++ b/app/docker/docker-compose.pgweb.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: pgweb: diff --git a/app/docker/docker-compose.portainer.yml b/app/docker/docker-compose.portainer.yml index 4d6a2724..5f207980 100644 --- a/app/docker/docker-compose.portainer.yml +++ b/app/docker/docker-compose.portainer.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: portainer: diff --git a/app/docker/docker-compose.postgres.yml b/app/docker/docker-compose.postgres.yml index b45f34e5..03de8bc4 100644 --- a/app/docker/docker-compose.postgres.yml +++ b/app/docker/docker-compose.postgres.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: postgres: @@ -36,5 +35,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.redis.yml b/app/docker/docker-compose.redis.yml index c64deef9..34007c04 100644 --- a/app/docker/docker-compose.redis.yml +++ b/app/docker/docker-compose.redis.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: redis: @@ -31,5 +30,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.remote-syslog2.yml b/app/docker/docker-compose.remote-syslog2.yml index 9692dcfc..f42a38ac 100644 --- a/app/docker/docker-compose.remote-syslog2.yml +++ b/app/docker/docker-compose.remote-syslog2.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: remote-syslog2: @@ -21,8 +20,7 @@ services: volumes: logs: - external: - name: dab_logs + name: dab_logs networks: default: diff --git a/app/docker/docker-compose.sam.yml b/app/docker/docker-compose.sam.yml index a33d753e..db72320b 100644 --- a/app/docker/docker-compose.sam.yml +++ b/app/docker/docker-compose.sam.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: sam: diff --git a/app/docker/docker-compose.selenium.yml b/app/docker/docker-compose.selenium.yml index eea95139..ab1666e6 100644 --- a/app/docker/docker-compose.selenium.yml +++ b/app/docker/docker-compose.selenium.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: selenium: @@ -29,5 +28,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.serveo.yml b/app/docker/docker-compose.serveo.yml index dfda7bf9..d6fc798d 100644 --- a/app/docker/docker-compose.serveo.yml +++ b/app/docker/docker-compose.serveo.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: serveo: @@ -27,5 +26,5 @@ services: networks: default: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.shell.yml b/app/docker/docker-compose.shell.yml index ef4711e1..69567f12 100644 --- a/app/docker/docker-compose.shell.yml +++ b/app/docker/docker-compose.shell.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: shell: diff --git a/app/docker/docker-compose.sqliv.yml b/app/docker/docker-compose.sqliv.yml index b7b736bb..2f336e7c 100644 --- a/app/docker/docker-compose.sqliv.yml +++ b/app/docker/docker-compose.sqliv.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: sqliv: @@ -20,5 +19,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.sysdig.yml b/app/docker/docker-compose.sysdig.yml index 0865ab85..1c2ccba6 100644 --- a/app/docker/docker-compose.sysdig.yml +++ b/app/docker/docker-compose.sysdig.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: sysdig: diff --git a/app/docker/docker-compose.telegraf.yml b/app/docker/docker-compose.telegraf.yml index 4bf5f386..dacdf3e4 100644 --- a/app/docker/docker-compose.telegraf.yml +++ b/app/docker/docker-compose.telegraf.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: telegraf: @@ -29,6 +28,8 @@ services: interval: 30s timeout: 10s retries: 3 + user: root + entrypoint: telegraf tmpfs: - /tmp @@ -39,6 +40,6 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.terraform.yml b/app/docker/docker-compose.terraform.yml index be7d3166..7615f8d7 100644 --- a/app/docker/docker-compose.terraform.yml +++ b/app/docker/docker-compose.terraform.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: terraform: diff --git a/app/docker/docker-compose.traefik.yml b/app/docker/docker-compose.traefik.yml index 33d056de..8bf35b1f 100644 --- a/app/docker/docker-compose.traefik.yml +++ b/app/docker/docker-compose.traefik.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: traefik: @@ -36,6 +35,6 @@ services: networks: default: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.vault.yml b/app/docker/docker-compose.vault.yml index fa8eb80d..f72d86b3 100644 --- a/app/docker/docker-compose.vault.yml +++ b/app/docker/docker-compose.vault.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: vault: diff --git a/app/docker/docker-compose.vaultbot.yml b/app/docker/docker-compose.vaultbot.yml index 0b448aca..2eeaf727 100644 --- a/app/docker/docker-compose.vaultbot.yml +++ b/app/docker/docker-compose.vaultbot.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: vaultbot: diff --git a/app/docker/docker-compose.vyne.yml b/app/docker/docker-compose.vyne.yml deleted file mode 100644 index 3d76bfc5..00000000 --- a/app/docker/docker-compose.vyne.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: '3.5' - -services: - - vyne: - container_name: dab_vyne - image: "vyneco/vyne:${DAB_APPS_VYNE_TAG:-latest}" - labels: - description: 'A platform for automating integration between services' - com.centurylinklabs.watchtower.enable: 'true' - restart: on-failure - expose: - - 9022 - ports: - - 9022 - environment: - PROFILE: 'embedded-discovery' - env_file: - - /tmp/denvmux/vyne.env - tmpfs: - - /tmp - -networks: - default: - name: dab_apps diff --git a/app/docker/docker-compose.watchtower.yml b/app/docker/docker-compose.watchtower.yml index 95961dc7..502d8d4c 100644 --- a/app/docker/docker-compose.watchtower.yml +++ b/app/docker/docker-compose.watchtower.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: watchtower: diff --git a/app/docker/docker-compose.xsstrike.yml b/app/docker/docker-compose.xsstrike.yml index 54f7b8aa..884f05ba 100644 --- a/app/docker/docker-compose.xsstrike.yml +++ b/app/docker/docker-compose.xsstrike.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: xsstrike: @@ -22,5 +21,5 @@ networks: default: name: dab_apps lab: - external: - name: lab + external: true + name: lab diff --git a/app/docker/docker-compose.zookeeper.yml b/app/docker/docker-compose.zookeeper.yml index aa0fce70..d9c2c080 100644 --- a/app/docker/docker-compose.zookeeper.yml +++ b/app/docker/docker-compose.zookeeper.yml @@ -1,5 +1,4 @@ -version: '3.5' - +--- services: zookeeper: diff --git a/app/lib/docker.sh b/app/lib/docker.sh index 074de87d..16afb194 100644 --- a/app/lib/docker.sh +++ b/app/lib/docker.sh @@ -7,7 +7,7 @@ dpose_all() { app_envs_to_files_muxing env COMPOSE_PROJECT_NAME=dab \ COMPOSE_FILE="$(find "$DAB/docker" -type f -name 'docker-compose.*.yml' | tr '\n' ':' | sed 's/:$//')" \ - docker-compose --project-directory "$DAB/docker" "$@" + docker compose --project-directory "$DAB/docker" "$@" [ "${DAB_PROFILING:-false}" = 'false' ] || echo "[PROFILE] $(date '+%s.%N') [STOP] dpose_all $*" } @@ -31,7 +31,7 @@ dpose() { shift env COMPOSE_PROJECT_NAME=dab \ COMPOSE_FILE="$(get_docker_compose_files_for_app "$app")" \ - docker-compose --project-directory "$DAB/docker" "$@" 3>&1 1>&2 2>&3 | sed '/If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up/d' + docker compose --project-directory "$DAB/docker" "$@" 3>&1 1>&2 2>&3 | sed '/If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up/d' [ "${DAB_PROFILING:-false}" = 'false' ] || echo "[PROFILE] $(date '+%s.%N') [STOP] dpose $*" } @@ -42,17 +42,17 @@ get_app_dependencies() { file="$DAB/docker/docker-compose.$app.yml" [ -f "$file" ] || return 0 - val="$(yq -r ".services[\"$app\"].depends_on" <"$file")" + val="$(yq e ".services[\"$app\"].depends_on | .[]" <"$file")" [ "$val" != "null" ] || return 0 - echo "$val" | sed -e '1d' -e '$d' | cut -d '"' -f 2 + echo "$val" } get_app_label_value() { app="$1" label="$2" default="${3:-}" - val="$(yq -r ".services[\"$app\"].labels.$label" <"$DAB/docker/docker-compose.$app.yml")" + val="$(yq e ".services[\"$app\"].labels.$label" <"$DAB/docker/docker-compose.$app.yml")" [ "$val" != "null" ] || val="$default" [ -z "$val" ] || echo "$val" } diff --git a/app/lib/hooks.sh b/app/lib/hooks.sh index bbb55d0d..2cc6f903 100644 --- a/app/lib/hooks.sh +++ b/app/lib/hooks.sh @@ -71,7 +71,7 @@ maybe_set_kubeconfig() { [ -f "$app_kubeconfig" ] && [ ! -f ~/.kube/config.yaml ] && [ ! -f ~/.kube/config.yml ]; then - export KUBECONFIG=$app_kubeconfig + export KUBECONFIG="$app_kubeconfig" fi } diff --git a/app/subcommands/apps/list b/app/subcommands/apps/list index 2254e550..905e8d74 100755 --- a/app/subcommands/apps/list +++ b/app/subcommands/apps/list @@ -12,7 +12,7 @@ compose_to_apps_data() { tmp="$(mktemp)" dpose_all config >"$tmp" - yq -r '.services | to_entries[] | "\(.key)`\(.value.labels.description)"' <"$tmp" + yq '.services | to_entries | .[] | .key + "`" + .value.labels.description + ""' <"$tmp" export DAB_PROFILING="$PROFILING" } diff --git a/app/subcommands/repo/entrypoint/run b/app/subcommands/repo/entrypoint/run index 40068976..fa13d996 100755 --- a/app/subcommands/repo/entrypoint/run +++ b/app/subcommands/repo/entrypoint/run @@ -16,7 +16,7 @@ suffix="$*" [ -n "$suffix" ] && suffix=" $suffix" inform "Executing $repo entrypoint $entry$suffix" -export DAB_CURRENT_REPO=$repo +export DAB_CURRENT_REPO="$repo" entrypoint="$DAB_CONF_PATH/repo/$repo/entrypoint/$entry" if [ ! -x "$entrypoint" ]; then @@ -29,6 +29,6 @@ if [ ! -x "$entrypoint" ]; then fi cd "$DAB_REPO_PATH/$repo" -shellcheck --shell sh --color "$entrypoint" || true +shellcheck --external-sources --shell sh --color "$entrypoint" || true env HOST_PWD="$DAB_REPO_PATH/$repo" \ sh "$entrypoint" "$@" diff --git a/app/subcommands/repo/list b/app/subcommands/repo/list index 7e08ede4..6110788b 100755 --- a/app/subcommands/repo/list +++ b/app/subcommands/repo/list @@ -22,4 +22,4 @@ for repo in $repos; do repo_row "$repo" "$status" "$site" done -printf '%b\n' "$(echo "$repo_data" | column -s'\`' -o' │ ' -t -N REPO,STATUS,SITE -R status | colorize_stdin_glyphs)" +printf '%b\n' "$(echo "$repo_data" | column -s'\`' -o' │ ' -t -N REPO,STATUS,SITE -R STATUS | colorize_stdin_glyphs)" diff --git a/app/subcommands/repo/report b/app/subcommands/repo/report index bf533904..e191ac65 100755 --- a/app/subcommands/repo/report +++ b/app/subcommands/repo/report @@ -59,4 +59,4 @@ for repo in $repos; do repo_row "$repo" "$clean" "$uptodate" done -printf '\n%b\n' "$(echo "$repo_data" | column -s'\`' -o' │ ' -t -N REPO,CLEAN,UPTODATE -R clean | colorize_stdin_glyphs)" +printf '\n%b\n' "$(echo "$repo_data" | column -s'\`' -o' │ ' -t -N REPO,CLEAN,UPTODATE -R CLEAN | colorize_stdin_glyphs)" diff --git a/completion/config.go b/completion/config.go index 719a0dd1..2e3207f1 100644 --- a/completion/config.go +++ b/completion/config.go @@ -9,9 +9,10 @@ import ( "github.com/posener/complete" ) -var dabRepoPath string -var dabConfPath string -var home string +var ( + dabConfPath string + home string +) func init() { var err error @@ -21,13 +22,9 @@ func init() { } dabConfPath = filepath.Join(home, ".config/dab") - dabRepoPath = filepath.Join(home, "dab") if val := os.Getenv("DAB_CONF_PATH"); val != "" { dabConfPath = val } - if val := os.Getenv("DAB_REPO_PATH"); val != "" { - dabRepoPath = val - } } func predictConfigKeys(args complete.Args) []string { @@ -45,16 +42,19 @@ func getCompletedFragmentChildren(input string) (out []string) { return err } out = append(out, strings.TrimPrefix(path, dir+"/")) + return nil }) if err != nil { panic(err) } + return out } func getCompletedFragment(input string) string { parts := strings.Split(input, "/") completed := parts[:len(parts)-1] + return strings.Join(completed, "/") } diff --git a/completion/gen/main.go b/completion/gen/main.go index f1d5aa04..25dd2d70 100644 --- a/completion/gen/main.go +++ b/completion/gen/main.go @@ -3,7 +3,7 @@ package main import ( "bufio" "flag" - "io/ioutil" + "io/fs" "os" "sort" "strings" @@ -11,26 +11,29 @@ import ( "github.com/Nekroze/dab/completion/templates" ) -var searchDir string -var outFile string +var ( + searchDir string + outFile string +) func main() { flag.StringVar(&searchDir, "search", "../app/docker/", "directory to search for apps in") flag.StringVar(&outFile, "out", "apps.go", "filename to write out to") flag.Parse() - files, err := ioutil.ReadDir(searchDir) + files, err := os.ReadDir(searchDir) if err != nil { panic(err) } apps := []string{} for _, f := range files { - if !isApp(f) { + fileinfo, _ := f.Info() + if !isApp(fileinfo) { continue } - apps = append(apps, getAppName(f)) + apps = append(apps, getAppName(fileinfo)) } sort.Strings(apps) @@ -49,11 +52,11 @@ func main() { w.Flush() } -func getAppName(f os.FileInfo) string { +func getAppName(f fs.FileInfo) string { return strings.Split(f.Name(), ".")[1] } -func isApp(f os.FileInfo) bool { +func isApp(f fs.FileInfo) bool { parts := strings.Split(f.Name(), ".") if len(parts) != 3 { diff --git a/completion/generic.go b/completion/generic.go index 99b776bf..2f0ecac9 100644 --- a/completion/generic.go +++ b/completion/generic.go @@ -25,6 +25,7 @@ func (p predictGeneric) activeLevel(current int) bool { return true } } + return false } @@ -32,5 +33,6 @@ func (p predictGeneric) Predict(args complete.Args) []string { if !p.activeLevel(len(args.Completed)) { return nil } + return p.predict(args) } diff --git a/completion/go.mod b/completion/go.mod index de9b82ba..49d425a2 100644 --- a/completion/go.mod +++ b/completion/go.mod @@ -1,7 +1,21 @@ module github.com/Nekroze/dab/completion +go 1.22.1 + require ( github.com/mitchellh/go-homedir v1.0.0 - github.com/posener/complete v1.2.1 - github.com/valyala/quicktemplate v1.0.2 + github.com/posener/complete v1.2.3 + github.com/valyala/quicktemplate v1.7.0 +) + +require ( + github.com/hashicorp/errwrap v1.0.0 // indirect + github.com/hashicorp/go-multierror v1.0.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect +) + +require ( + github.com/klauspost/compress v1.13.5 // indirect + github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e // indirect + github.com/valyala/fasthttp v1.30.0 // indirect ) diff --git a/completion/go.sum b/completion/go.sum index a4d272ad..9ceee91e 100644 --- a/completion/go.sum +++ b/completion/go.sum @@ -1,16 +1,40 @@ -github.com/Nekroze/dab/completion v0.0.0-20190307220551-e67f922d78f0 h1:RrVsU8pUNyR1SSrsPL4SOmzdklGTvlz3SgG1K34LtG8= +github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= +github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/mitchellh/go-homedir v1.0.0 h1:vKb8ShqSby24Yrqr/yDYkuFz8d0WUjys40rvnGC8aR0= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/posener/complete v1.2.1 h1:LrvDIY//XNo65Lq84G/akBuMGlawHvGBABv8f/ZN6DI= -github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v0.0.0-20180905170723-c6fd90e432cc/go.mod h1:+g/po7GqyG5E+1CNgquiIxJnsXEi5vwFn5weFujbO78= -github.com/valyala/quicktemplate v1.0.2 h1:ZeVRKan1W/25u5f9ilDo5HWtdxD+QxR10WrZwxqLM54= -github.com/valyala/quicktemplate v1.0.2/go.mod h1:KZAB+RlYlfNtBUGQMzIrnE8uuNgD2SbUn5CpZyod0sk= +github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= +github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM= +github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/VPSJnLYn+LmLk8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/completion/groups.go b/completion/groups.go index def0972d..d18b255d 100644 --- a/completion/groups.go +++ b/completion/groups.go @@ -1,7 +1,6 @@ package main import ( - "io/ioutil" "os" "github.com/posener/complete" @@ -12,7 +11,7 @@ func predictGroups(_ complete.Args) (out []string) { if _, err := os.Stat(dir); os.IsNotExist(err) { panic(err) } - files, err := ioutil.ReadDir(dir) + files, err := os.ReadDir(dir) if err != nil { panic(err) } @@ -22,5 +21,6 @@ func predictGroups(_ complete.Args) (out []string) { out = append(out, f.Name()) } } + return out } diff --git a/completion/repos.go b/completion/repos.go index c5fd8775..9fb66b44 100644 --- a/completion/repos.go +++ b/completion/repos.go @@ -1,7 +1,6 @@ package main import ( - "io/ioutil" "os" "path" @@ -13,7 +12,7 @@ func predictRepos(_ complete.Args) (out []string) { if _, err := os.Stat(dir); os.IsNotExist(err) { return nil } - files, err := ioutil.ReadDir(dir) + files, err := os.ReadDir(dir) if err != nil { panic(err) } @@ -23,6 +22,7 @@ func predictRepos(_ complete.Args) (out []string) { out = append(out, f.Name()) } } + return out } @@ -31,7 +31,7 @@ func predictEntrypoint(a complete.Args) (out []string) { if _, err := os.Stat(dir); os.IsNotExist(err) { return nil } - files, err := ioutil.ReadDir(dir) + files, err := os.ReadDir(dir) if err != nil { panic(err) } @@ -41,5 +41,6 @@ func predictEntrypoint(a complete.Args) (out []string) { out = append(out, f.Name()) } } + return out } diff --git a/completion/tools.go b/completion/tools.go new file mode 100644 index 00000000..05877baa --- /dev/null +++ b/completion/tools.go @@ -0,0 +1,8 @@ +//go:build tools +// +build tools + +package main + +import ( + _ "github.com/valyala/quicktemplate/qtc" +) diff --git a/dab b/dab index 4b1dc881..dbab3c55 100755 --- a/dab +++ b/dab @@ -145,7 +145,7 @@ if [ -z "${DAB_WRAPPER_PATH:-}" ]; then export DAB_WRAPPER_PATH="$wrappercmd" fi fi -[ -n "${DAB_WRAPPER_PATH:-}" ] && dArg -v "$DAB_WRAPPER_PATH:/tmp/wrapper" +[ -n "${DAB_WRAPPER_PATH:-}" ] && dArg -v "$(dirname "$DAB_WRAPPER_PATH"):/tmp/wrapper" # Pass through host OS type. dArg -e DAB_HOST_UNAME="$(uname)" diff --git a/scripts/build.sh b/scripts/build.sh index af6bbe7a..d77c0682 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -6,4 +6,4 @@ export COMPOSE_PROJECT_NAME='dab' export COMPOSE_FILE="tests/docker-compose.yml:tests/docker-compose.${TEST_DOCKER:=local}.yml" # Build just the dab image and clean up. -docker-compose build --force-rm --pull dab +docker compose build --force-rm --pull dab diff --git a/scripts/compgen.sh b/scripts/compgen.sh index 1f48a923..45a66d7e 100755 --- a/scripts/compgen.sh +++ b/scripts/compgen.sh @@ -1,12 +1,11 @@ #!/bin/sh set -eu -export GO111MODULE=off - -go get -v -u github.com/valyala/quicktemplate/qtc +tools=$(go list -f '{{range .Imports}}{{.}}@latest{{end}}' completion/tools.go) +echo "$tools" +go install "$tools" cd completion -export GO111MODULE=on go mod download go generate -v ./templates diff --git a/scripts/render-tour.sh b/scripts/render-tour.sh index b8a3bc47..3dd045f0 100755 --- a/scripts/render-tour.sh +++ b/scripts/render-tour.sh @@ -5,25 +5,25 @@ set -eux export TEST_DOCKER='dind' export COMPOSE_PROJECT_NAME='dab' export COMPOSE_FILE="tests/docker-compose.yml:tests/docker-compose.$TEST_DOCKER.yml" -trap 'docker-compose down' EXIT +trap 'docker compose down' EXIT # Start the docker in docker daemon, isolating it from the host. -docker-compose up -d --remove-orphans docker +docker compose up -d --remove-orphans docker # Ensure the dab image is built from the code -docker-compose run --rm build -docker-compose build tourist +docker compose run --rm build +docker compose build tourist # Ensure output will not be filled/slowed with progress indicators -docker-compose run --rm tourist 'docker pull nekroze/containaruba:alpine' -docker-compose run --rm tourist "dab apps update vaultbot" +docker compose run --rm tourist 'docker pull nekroze/containaruba:alpine' +docker compose run --rm tourist "dab apps update vaultbot" for app in $(grep -E 'dab apps \w+ \w+' tests/tour.sh | awk -vORS=' ' '{ print $4; }' | uniq); do - docker-compose run --rm tourist "dab apps update $app" + docker compose run --rm tourist "dab apps update $app" done -docker-compose run --rm tourist 'rm -rf ~/.config/dab' +docker compose run --rm tourist 'rm -rf ~/.config/dab' # Record tour -docker-compose run --rm tourist +docker compose run --rm tourist # Ensure you own the newly rendered tour if [ ! -w app/tour.asciinema.json ]; then diff --git a/scripts/test.sh b/scripts/test.sh index ba4d453f..23ddd2c8 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -8,31 +8,31 @@ export COMPOSE_FILE="tests/docker-compose.yml:tests/docker-compose.${TEST_DOCKER echo echo Docker Compose Config echo -docker-compose config +docker compose config echo # Cleanup first -docker-compose down --volumes +docker compose down --volumes # Pull/build the latest test images. -docker-compose pull tests || true +docker compose pull tests || true # Ensure the mess we are about to make will be somewhat cleaned up -trap 'docker-compose down' EXIT +trap 'docker compose down' EXIT if [ "$TEST_DOCKER" = 'local' ]; then # Cleanup previous test space [ -d /tmp/dab ] && sudo rm -rf /tmp/dab elif [ "$TEST_DOCKER" = 'dind' ]; then # run build container to get the image in dind. - docker-compose run --rm build + docker compose run --rm build # Start the docker in docker daemon, isolating it from the host. - docker-compose up -d --remove-orphans docker + docker compose up -d --remove-orphans docker fi # Create new test space mkdir -p /tmp/dab/test_results # run tests container and pass any params to this script to cucumber. -docker-compose run tests --tags="${TEST_TAGS:-not @none}" --order=random "$@" +docker compose run tests --tags="${TEST_TAGS:-not @none}" --order=random "$@" diff --git a/tests/Dockerfile.tourist b/tests/Dockerfile.tourist index fc0a68d4..753a3428 100644 --- a/tests/Dockerfile.tourist +++ b/tests/Dockerfile.tourist @@ -21,7 +21,7 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* RUN pip2 install PyYAML spielbash \ - && pip3 install "asciinema==1.4.0" + && pip3 install --break-system-packages "asciinema==1.4.0" WORKDIR /root diff --git a/tests/docker-compose.dind.yml b/tests/docker-compose.dind.yml index ec704ba6..0a052dac 100644 --- a/tests/docker-compose.dind.yml +++ b/tests/docker-compose.dind.yml @@ -1,5 +1,4 @@ -version: '3.2' - +--- services: dab: diff --git a/tests/docker-compose.local.yml b/tests/docker-compose.local.yml index 46ba00fb..097039c8 100644 --- a/tests/docker-compose.local.yml +++ b/tests/docker-compose.local.yml @@ -1,5 +1,4 @@ -version: '3.2' - +--- services: tests: diff --git a/tests/docker-compose.yml b/tests/docker-compose.yml index e4414893..6b5781ea 100644 --- a/tests/docker-compose.yml +++ b/tests/docker-compose.yml @@ -1,5 +1,4 @@ -version: '3.2' - +--- services: dab: @@ -22,7 +21,7 @@ services: stdin_open: true build: - image: docker/compose:1.23.2 + image: docker:25.0.5-cli command: build --force-rm --pull dab working_dir: /opt/dab/tests volumes: diff --git a/tests/features/apps.feature b/tests/features/apps.feature index ceb7336e..25564250 100644 --- a/tests/features/apps.feature +++ b/tests/features/apps.feature @@ -22,7 +22,7 @@ Feature: Subcommand: dab apps When I run `dab apps update ` Then it should pass with "Pulling" - And the output should contain "Building" + And the output should contain "load build context" Examples: | APP | @@ -44,7 +44,7 @@ Feature: Subcommand: dab apps Given I run `dab apps start ` And it should pass matching: """ - ^ is available at https?://([0-9]+\.){3}[0-9]+:[0-9]+$ + ^ is available at https?://([0-9]+.){3}[0-9]+:[0-9]+$ """ And I successfully run `docker ps` And it should pass with "dab_" @@ -166,7 +166,7 @@ Feature: Subcommand: dab apps | traefik | DAB_APPS_TRAEFIK_TAG | v1.7 | @smoke - Scenario: Can view the docker-compose config for a app + Scenario: Can view the docker compose config for a app When I run `dab apps config vault` Then it should pass with "description:" diff --git a/tests/tour.sh b/tests/tour.sh index 06d05f57..d98f33f7 100644 --- a/tests/tour.sh +++ b/tests/tour.sh @@ -72,7 +72,7 @@ ls ~/dab/subcommander dab repo entrypoint create subcommander test dab repo entrypoint list subcommander # Now we have a script where we can place the build incantation -dab config set repo/subcommander/entrypoint/test docker-compose run tests +dab config set repo/subcommander/entrypoint/test docker compose run tests # We can put anything we want in these entrypoints # We can even run dab if we wanted to use apps for example # Now after making several epic improvements we can...