Commit c8592d99 authored by nimrod's avatar nimrod
Browse files

Homebrew.

- Add Homebrew and install a bunch of utilities with it.
- Remove the binaries Makefile (replaced by Homebrew).
- Add Bash completion to the image (instead of rcfiles). Makes the image
  more complete and self-standing.
- Add the RabbitMQ admin script from rcfiles, same as before.
parent ad488095
Loading
Loading
Loading
Loading
Loading
+34 −6
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg > google-cloud.gp
RUN curl https://cli-assets.heroku.com/apt/release.key | gpg --dearmor > heroku.gpg

FROM registry.hub.docker.com/library/buildpack-deps:testing
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# hadolint ignore=DL3008
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
@@ -65,6 +66,7 @@ RUN apt-get update && \
        iputils-ping \
        keyutils \
        krb5-config \
        kubernetes-client \
        ldap-utils \
        less \
        libcairo2-dev \
@@ -124,11 +126,32 @@ RUN apt-get update && \
    wget https://prerelease.keybase.io/keybase_amd64.deb -O /tmp/keybase.deb && \
    apt install -y /tmp/keybase.deb && \
    rm /tmp/keybase.deb && \
    wget "https://github.com/cli/cli/releases/download/v1.13.1/gh_1.13.1_$(go env GOOS)_$(go env GOARCH).deb" -O /tmp/gh.deb && \
    apt install -y /tmp/gh.deb && \
    rm /tmp/gh.deb && \
    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 && \
    git clone https://github.com/Homebrew/brew /usr/local/share/brew && \
    ln -s /usr/local/share/brew/bin/brew /usr/local/bin/brew && \
    brew install \
        aws-vault \
        bfg \
        buildpacks/tap/pack \
        docker-machine \
        envconsul \
        gh \
        gomplate \
        hugo \
        kompose \
        kops \
        kustomize \
        minikube \
        packer \
        rke \
        skaffold \
        terraform \
        terragrunt \
        vault \
    && \
    brew cleanup --prune=all -s && \
    find /usr/local/etc/bash_completion.d/ -find f exec ln --symbolic --target /etc/bash_completion.d/ '{}' \; && \
    python3 -m pip install --use-deprecated=legacy-resolver \
        ansible \
        ansible-runner \
@@ -197,19 +220,24 @@ RUN apt-get update && \
    go get github.com/lucagrulla/cw && \
    go get sigs.k8s.io/kind@v0.9.0 && \
    go get github.com/genuinetools/reg@v0.16.1 && \
    wget https://git.shore.co.il/nimrod/rcfiles/-/raw/master/binaries.mk -O /tmp/Makefile && \
    make -C /tmp DESTDIR=/usr/local binaries && \
    wget https://git.shore.co.il/shore/toolbox-build/-/jobs/artifacts/master/raw/toolbox.tar.gz?job=build -O /tmp/toolbox.tar.gz && \
    tar -xzf /tmp/toolbox.tar.gz -C / && \
    wget https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/v3.8.16/deps/rabbitmq_management/bin/rabbitmqadmin -O /usr/local/bin/rabbitmqadmin && \
    chmod +x /usr/local/bin/rabbitmqadmin && \
    pipenv --completion > /etc/bash_completion.d/pipenv && \
    rabbitmqadmin --bash-completion  > /etc/bash_completion.d/rabbitmqadmin && \
    poetry completions bash > /etc/bash_completion.d/poetry && \
    pandoc --bash-completion > /etc/bash_completion.d/pandoc && \
    mkdir /etc/krb5.conf.d && \
    echo 'VARIANT_ID=container' >> /etc/os-release && \
    touch /etc/localtime && \
    # pragma: allowlist nextline secret
    sed -i -e 's/ ALL$/ NOPASSWD:ALL/' /etc/sudoers && \
    rm /etc/ssh/ssh_host_* && \
    rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/*
    rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/* /var/cache/apt/archives/* ~/.cache/*
LABEL com.github.containers.toolbox="true" \
      com.github.debarshiray.toolbox="true"
ENV PATH /usr/lib/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV HOMEBREW_NO_AUTO_UPDATE 1
VOLUME /run/sshd
CMD ["/bin/bash"]