Skip to content
Snippets Groups Projects
Commit 34760b0e authored by nimrod's avatar nimrod
Browse files

Add the workbench image.

parent 04522271
No related branches found
No related tags found
No related merge requests found
Pipeline #3257 passed
......@@ -211,3 +211,19 @@ push-toolbx:
needs:
- job: build-toolbx
artifacts: true
# workbench image:
build-workbench:
extends: .container-build
variables:
CONTEXT: workbench
push-workbench:
extends: .container-push
variables:
CONTEXT: workbench
IMAGE: workbench
needs:
- job: build-workbench
artifacts: true
*
!bash_completion.d/*
!bin/*
# hadolint ignore=DL3007
FROM registry.shore.co.il/toolbx:latest
SHELL ["/bin/bash", "-o", "pipefail", "-xc"]
# hadolint ignore=DL3008,DL3013,DL3016,DL3027,DL4001
RUN apt-get update && \
curl --location --silent --fail --show-error https://github.com/kubernetes/kompose/releases/download/v1.26.1/kompose_1.26.1_amd64.deb --output /tmp/kompose.deb && \
curl --location --silent --fail --show-error 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 \
adb \
apache2-utils \
aspell-he \
at \
aws-vault \
bash-completion \
bats \
bc \
build-essential \
bundler \
bzr \
ca-certificates \
clickhouse-client \
cmake \
composer \
consul \
curl \
dbus-x11 \
default-jdk-headless \
default-mysql-client \
devscripts \
direnv \
dirmngr \
dnsutils \
docker.io \
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 \
golang \
gomplate \
google-cloud-cli-skaffold \
google-cloud-sdk \
go-md2man \
gpgv \
helm \
hugo \
hunspell \
hunspell-he \
hyphen-en-us \
ipcalc \
iproute2 \
iputils-ping \
iputils-tracepath \
jp \
jq \
keyutils \
/tmp/kompose.deb \
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 \
mlocate \
mongodb-database-tools \
mythes-en-us \
netcat-openbsd \
nodejs \
npm \
ostree \
packer \
php-cli \
podman \
postgresql-client \
protobuf-compiler \
python3-dev \
python3-pip \
python3-venv \
rclone \
redis-tools \
rename \
reprepro \
rsync \
ruby-dev \
/tmp/session-manager-plugin.deb \
sharutils \
shellcheck \
signify-openbsd \
skopeo \
sops \
subversion \
sudo \
swaks \
systemd \
task-english \
task-hebrew \
task-ssh-server \
telnet \
terraform \
time \
tk-dev \
tmux \
tnftp \
transmission-cli \
ttyrec \
udftools \
unzip \
vagrant \
vault \
vcdimager \
vim-nox \
w3m-img \
wget \
whois \
xdg-user-dirs \
zip \
&& \
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/; s/# en_IL UTF-8/en_IL UTF-8/; s/# he_IL.UTF-8 UTF-8/he_IL.UTF-8 UTF-8/;' /etc/locale.gen && \
locale-gen && \
python3 -m pip install --use-deprecated=legacy-resolver --no-cache-dir \
https://github.com/aws/aws-cli/archive/refs/heads/v2.zip \
ansible \
ansible-runner \
awslogs \
bcrypt \
black \
bump2version \
colorama \
boto \
boto3 \
chalice \
check-manifest \
cookiecutter \
cryptography \
dnspython \
docker \
elasticsearch-curator \
elasticsearch[async] \
fabric \
flit \
github3.py \
Glances \
gunicorn \
hashin \
httpbin \
httpie \
identify \
importlab \
invoke \
iredis \
khal \
khard \
litecli \
magic-wormhole \
mariadb \
mycli \
netaddr \
paramiko \
parse \
passhole \
passlib \
pdm \
pgcli \
pipenv \
pip-tools \
poetry \
pre-commit \
protobuf \
psycopg2 \
pur \
pygments \
pymongo \
PyMySQL \
PyGObject \
pyopenssl \
'python-gitlab[autocompletion,yaml]' \
python-hcl2 \
pyxdg \
redis \
remarshal \
requests \
rich-cli \
sh \
sqlite-utils \
template \
todoman \
tox \
transmission-rpc \
ziglang \
&& \
echo pdm-publish pdm-version | xargs -n1 pdm plugin add && \
npm install --global \
corepack \
@playwright/test \
&& \
export GOPATH=/usr/local/lib/go && \
export PATH="$GOPATH/bin:$PATH" && \
mkdir "$GOPATH" && \
export GO111MODULE=on && \
go install github.com/giantswarm/semver-bump@latest && \
go install github.com/nishanths/license/v5@latest && \
go install github.com/spelufo/on-change@latest && \
go install github.com/kaorimatz/mysqldump-loader@v0.4.1 && \
go install github.com/lucagrulla/cw@latest && \
go install github.com/kvz/json2hcl@latest && \
go install github.com/hashicorp/envconsul@latest && \
go install sigs.k8s.io/kustomize/kustomize/v4@latest && \
go install github.com/1player/host-spawn@latest && \
wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/v3.8.16/deps/rabbitmq_management/bin/rabbitmqadmin -qO /usr/local/bin/rabbitmqadmin && \
chmod +x /usr/local/bin/rabbitmqadmin && \
wget https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64 -qO /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose && \
mkdir /usr/local/share/bfg && \
wget 'https://search.maven.org/remote_content?g=com.madgag&a=bfg&v=LATEST' -qO /usr/local/share/bfg/bfg.jar && \
curl --silent --location --fail --show-error "https://github.com/genuinetools/reg/releases/download/v0.16.1/reg-$(go env GOOS)-$(go env GOARCH)" --output /tmp/reg && \
install -o root -g root -m 0755 /tmp/reg /usr/local/bin/reg && \
curl --silent --location --fail --show-error "https://github.com/rancher/rke/releases/download/v1.3.8/rke_$(go env GOOS)-$(go env GOARCH)" --output /tmp/rke && \
install -o root -g root -m 0755 /tmp/rke /usr/local/bin/rke && \
curl --silent --location --fail --show-error 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/adbsynnc && \
_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 && \
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 && \
pdm completion bash > /etc/bash_completion.d/pdm && \
kompose completion bash > /etc/bash_completion.d/kompose && \
skaffold completion bash > /etc/bash_completion.d/skaffold && \
kustomize completion bash > /etc/bash_completion.d/kustomize && \
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://raw.githubusercontent.com/ziglang/shell-completions/master/_zig -qO /etc/bash_completion.d/zig && \
git clone https://github.com/asdf-vm/asdf.git /opt/asdf && \
ln --symbolic --target /etc/profile.d/ /opt/asdf/asdf.sh && \
ln --symbolic /opt/asdf/completions/asdf.bash /etc/bash_completion.d/asdf && \
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 && \
echo "export PATH=$GOPATH/bin:\$PATH" > /etc/profile.d/workbench.sh && \
# pragma: allowlist nextline secret
rm /etc/ssh/ssh_host_* && \
rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/* ~/.cache/*
COPY --chown=root:root bash_completion.d/* /etc/bash_completion.d/
COPY --chown=root:root bin/* /usr/local/bin/
ENV PATH /usr/local/lib/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV ASDF_DIR /opt/asdf
VOLUME /run/sshd
CMD ["/bin/bash"]
# Workbench
[![pipeline status](https://git.shore.co.il/shore/workbench/badges/master/pipeline.svg)](https://git.shore.co.il/shore/workbench/-/commits/master)
A Docker image for a portable working environment, meant to be used with
[Toolbox](https://github.com/containers/toolbox).
## Usage
```
toolbox create --registry registry.shore.co.il/workbench
toolbox enter workbench
```
## License
This software is licensed under the MIT license (see `LICENSE.txt`).
## Author Information
Nimrod Adar, [contact me](mailto:nimrod@shore.co.il) or visit my
[website](https://www.shore.co.il/). Patches are welcome via
[`git send-email`](http://git-scm.com/book/en/v2/Git-Commands-Email). The repository
is located at: <https://git.shore.co.il/explore/>.
# vim: ft=bash
complete -C 'aws_completer' aws
# vim: ft=bash
_pre_commit () {
local cur prev words cword opts
_init_completion || return
opts='-h --help -V --version'
commands='autoupdate clean gc init-templatedir install install-hooks migrate-config run sample-config try-repo uninstall validate-config validate-manifest help hook-impl'
if [[ $cur == -* ]]
then
COMPREPLY=($(compgen -W "$opts" -- "$cur"))
else
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
fi
}
complete -F _pre_commit pre-commit
_cli_bash_autocomplete() {
if [[ "${COMP_WORDS[0]}" != "source" ]]; then
local cur opts base
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
if [[ "$cur" == "-"* ]]; then
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} ${cur} --generate-bash-completion )
else
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )
fi
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete sops
# vim: ft=bash
complete -C terraform terraform
# vim: ft=bash
complete -C vault vault
#!/bin/sh
set -eu
exec java -jar /usr/local/share/bfg/bfg.jar "$@"
#!/bin/sh
exec gio open "$@"
#!/bin/sh
exec gpg "$@"
#!/bin/sh
exec python3 -m ziglang "$@"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment