# hadolint global ignore=DL4001 # hadolint ignore=DL3007 FROM registry.shore.co.il/toolbx:latest as temp RUN curl https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip --output /tmp/duckdb.zip && \ unzip /tmp/duckdb.zip duckdb -d /tmp/ && \ install -m 755 -o root -g root /tmp/duckdb /usr/local/bin/duckdb # hadolint ignore=DL3007 FROM registry.shore.co.il/toolbx:latest COPY --from=temp /usr/local/bin/duckdb /usr/local/bin/ SHELL ["/bin/bash", "-o", "pipefail", "-xc"] ENV PATH /opt/pipx/bin:/usr/local/lib/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # hadolint ignore=DL3008 RUN apt-get update && \ curl "https://github.com/kubernetes/kompose/releases/download/v1.26.1/kompose_1.26.1_$(dpkg --print-architecture).deb" --output /tmp/kompose.deb && \ curl https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb --output /tmp/session-manager-plugin.deb && \ DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends \ /tmp/kompose.deb \ /tmp/session-manager-plugin.deb \ adb \ apache2-utils \ aspell-he \ at \ aws-vault \ bash-completion \ bats \ bc \ build-essential \ bundler \ bzr \ ca-certificates \ clickhouse-client \ cmake \ colorized-logs \ composer \ consul=1.16.4-1 \ curl \ dbus-x11 \ default-jdk-headless \ devscripts \ direnv \ dirmngr \ dnsutils \ docker-buildx-plugin \ docker-cli \ dos2unix \ easy-rsa \ entr \ expect \ flatpak \ flatpak-builder \ flatpak-xdg-utils \ fuse3 \ gdal-bin \ gettext-base \ gh \ gir1.2-glib-2.0 \ gir1.2-ostree-1.0 \ git \ gnupg \ go-md2man \ gobjc++ \ golang \ gomplate \ google-cloud-cli-skaffold \ google-cloud-sdk \ gpgv \ helm \ hugo \ hunspell \ hunspell-he \ hyphen-en-us \ ipcalc \ iproute2 \ iputils-ping \ iputils-tracepath \ jp \ jq \ keyutils \ kops \ krb5-config \ kubectl \ ldap-utils \ less \ libbz2-dev \ libcairo2-dev \ libcap2-bin \ libdbus-1-dev \ libgirepository1.0-dev \ liblcms2-dev \ libldap2-dev \ liblzma-dev \ libmariadb-dev \ libncursesw5-dev \ libnotify-bin \ libpq-dev \ libproj-dev \ libprotobuf-dev \ libreadline-dev \ libsasl2-dev \ libsecret-tools \ libsqlite3-dev \ libwebp-dev \ libxml2-dev \ libxmlsec1-dev \ libyaml-dev \ llvm \ lsof \ lz4 \ man-db \ mariadb-client \ mat2 \ mercurial \ meson \ minikube \ mongodb-database-tools \ mythes-en-us \ netcat-openbsd \ nodejs \ npm \ ostree \ packer=1.9.5-1 \ php-cli \ pigz \ plocate \ podman-remote \ postgresql-client \ protobuf-compiler \ python3-dev \ python3-pip \ python3-venv \ rclone \ redis-tools \ rename \ reprepro \ rsync \ ruby-dev \ sharutils \ shellcheck \ signify-openbsd \ skopeo \ sops \ subversion \ sudo \ swaks \ systemd \ task-english \ task-hebrew \ task-ssh-server \ telnet \ terraform=1.5.7-1 \ time \ tk-dev \ tmux \ tnftp \ tofu \ transmission-cli \ tree \ ttyrec \ udftools \ unrar-free \ unzip \ vagrant=2.3.7-1 \ vault=1.14.8-1 \ vcdimager \ vim-nox \ w3m-img \ wget \ whois \ xauth \ xdg-user-dirs \ zip \ && \ rm /etc/ssh/ssh_host_* && \ rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/* ENV PIPX_HOME /opt/pipx ENV PIPX_BIN_DIR /opt/pipx/bin # hadolint ignore=DL3013 RUN export PIP_CONSTRAINT=/tmp/constraint.txt && \ python3 -m pip freeze | grep packaging >> "$PIP_CONSTRAINT" && \ echo 'ruamel.yaml.clib>=0.2.12' >> "$PIP_CONSTRAINT" && \ python3 -m pip install --no-cache-dir --break-system-packages \ Glances \ PyGObject \ PyMySQL \ 'ansible>=10' \ ansible-runner \ awslogs \ bcrypt \ black \ boto \ boto3 \ bump2version \ check-manifest \ colorama \ cookiecutter \ cryptography \ dnspython \ docker \ fabric \ flit \ github3.py \ gunicorn \ hashin \ httpbin \ httpie \ identify \ importlab \ invoke \ iredis \ khal \ khard \ litecli \ magic-wormhole \ mycli \ netaddr \ opensearch-py[async] \ paramiko \ parse \ passhole \ passlib \ pgcli \ pip-tools \ pipenv \ pipx \ poetry \ pre-commit \ protobuf \ psycopg2 \ pur \ pygments \ pymongo \ pyopenssl \ 'python-gitlab[autocompletion,yaml]' \ python-hcl2 \ pyxdg \ redis \ remarshal \ requests \ rich-cli \ sdbus-notifications \ sh \ sqlite-utils \ template \ terraformation \ todoman \ tox \ transmission-rpc \ ziglang \ && \ pipx install chalice && \ pipx install curator-opensearch && \ pipx install https://github.com/aws/aws-cli/archive/refs/heads/v2.zip && \ rm -rf /tmp/* /var/tmp/* ~/.cache/* ENV COREPACK_HOME=/usr/local/share/corepack # hadolint ignore=DL3016 RUN npm install --global \ @bitwarden/cli \ @devcontainers/cli \ @playwright/test \ corepack \ && \ chown -R root:root /usr/local/lib/node_modules/@bitwarden/cli/node_modules/ && \ corepack install --global yarn@1 && \ rm -rf /tmp/* /var/tmp/* ~/.cache/* RUN export GOPATH=/usr/local/lib/go && \ mkdir "$GOPATH" && \ export GO111MODULE=on && \ go install github.com/1player/host-spawn@latest && \ go install github.com/aquaproj/aqua/v2/cmd/aqua@latest && \ go install github.com/giantswarm/semver-bump@latest && \ go install github.com/hashicorp/envconsul@latest && \ go install github.com/kaorimatz/mysqldump-loader@v0.4.1 && \ go install github.com/kvz/json2hcl@latest && \ go install github.com/loft-sh/devpod@latest && \ go install github.com/lucagrulla/cw@latest && \ go install github.com/nektos/act@latest && \ go install github.com/nishanths/license/v5@latest && \ go install github.com/rhysd/actionlint/cmd/actionlint@latest && \ go install github.com/spelufo/on-change@latest && \ go install golang.org/x/tools/cmd/gonew@latest && \ go install sigs.k8s.io/kustomize/kustomize/v5@latest && \ rm -rf /tmp/* /var/tmp/* ~/.cache/* # hadolint ignore=SC2263 RUN install -m 0755 <(curl https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/v3.12.6/deps/rabbitmq_management/bin/rabbitmqadmin) /usr/local/bin/rabbitmqadmin && \ install -m 0755 <(curl "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-linux-$(uname -m)") /usr/local/bin/docker-compose && \ install -m 0755 <(curl "https://github.com/genuinetools/reg/releases/download/v0.16.1/reg-$(go env GOOS)-$(go env GOARCH)") /usr/local/bin/reg && \ install -m 0755 <(curl "https://github.com/rancher/rke/releases/download/v1.4.10/rke_$(go env GOOS)-$(go env GOARCH)") /usr/local/bin/rke && \ install -m 0755 <(curl "https://pkgx.sh/Linux/$(uname -m)") /usr/local/bin/pkgx && \ mkdir /usr/local/share/bfg && \ install <(curl 'https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar') /usr/local/share/bfg/bfg.jar && \ curl https://github.com/SelfAdjointOperator/better-adb-sync/archive/refs/heads/master.tar.gz | tar -zxC /opt/ && \ ln --symbolic /opt/better-adb-sync-master/src/adbsync.py /usr/local/bin/adbsync && \ curl https://github.com/asdf-vm/asdf/archive/refs/heads/master.tar.gz | tar -zxC /opt/ && \ ln --symbolic --target /etc/profile.d/ /opt/asdf-master/asdf.sh && \ echo "export PATH=$PIPX_BIN_DIR:/usr/local/lib/go/bin:\$PATH" > /etc/profile.d/workbench.sh && \ rm -rf /tmp/* /var/tmp/* ~/.cache/* RUN _PIPENV_COMPLETE=bash_source pipenv > /etc/bash_completion.d/pipenv && \ rabbitmqadmin --bash-completion > /etc/bash_completion.d/rabbitmqadmin && \ poetry completions bash > /etc/bash_completion.d/poetry && \ register-python-argcomplete gitlab > /etc/bash_completion.d/gitlab && \ register-python-argcomplete pipx -s bash > /etc/bash_completion.d/pipx && \ invoke --print-completion-script bash > /etc/bash_completion.d/invoke && \ fab --print-completion-script bash > /etc/bash_completion.d/fabric && \ helm completion bash > /etc/bash_completion.d/helm && \ semver-bump completion bash > /etc/bash_completion.d/semver-bump && \ kompose completion bash > /etc/bash_completion.d/kompose && \ skaffold completion bash > /etc/bash_completion.d/skaffold && \ kustomize completion bash > /etc/bash_completion.d/kustomize && \ devpod completion bash > /etc/bash_completion.d/devpod && \ wget https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose -qO /etc/bash_completion.d/docker-compose && \ wget https://raw.githubusercontent.com/ansible-community/molecule/1.25.1/asset/bash_completion/molecule.bash-completion.sh -qO /etc/bash_completion.d/molecule && \ wget https://github.com/mrolli/packer-bash-completion/raw/master/packer -qO /etc/bash_completion.d/packer && \ wget https://raw.githubusercontent.com/dsifford/yarn-completion/v0.17.0/yarn-completion.bash -qO /etc/bash_completion.d/yarn && \ wget https://github.com/containers/podman/raw/main/completions/bash/podman -qO /etc/bash_completion.d/podman && \ #wget https://raw.githubusercontent.com/ziglang/shell-completions/master/_zig -qO /etc/bash_completion.d/zig && \ ln --symbolic /opt/asdf-master/completions/asdf.bash /etc/bash_completion.d/asdf && \ rm -rf /tmp/* /var/tmp/* ~/.cache/* RUN mkdir -p /usr/local/share/ca-certificates && \ wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem -qO - | \ awk '/-----BEGIN[A-Z0-9 ]*CERTIFICATE-----/ {n++} n > 0 {print > ("/usr/local/share/ca-certificates/rds-" (1+n) ".crt")}' && \ update-ca-certificates && \ # pragma: allowlist nextline secret rm -rf /tmp/* /var/tmp/* ~/.cache/* COPY --chown=root:root bash_completion.d/* /etc/bash_completion.d/ COPY --chown=root:root bin/* /usr/local/bin/ ENV ASDF_DIR /opt/asdf-master VOLUME /run/sshd CMD ["/bin/bash"]