FROM rustlang/rust:nightly as base

RUN rustup target add x86_64-unknown-linux-musl

RUN apt-get update -qq && \
  apt-get install -y \
  musl-tools \
  musl-dev

RUN update-ca-certificates

RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y -q build-essential curl git

WORKDIR /app/cuddle/

COPY . .

RUN cargo install --target x86_64-unknown-linux-musl --path cuddle

FROM docker:dind

RUN apk add bash git kubectl

ENV SLICE_VERSION=v1.2.7
RUN wget -O kubectl-slice_linux_x86_64.tar.gz \
   "https://github.com/patrickdappollonio/kubectl-slice/releases/download/$SLICE_VERSION/kubectl-slice_linux_x86_64.tar.gz" && \
   tar -xf kubectl-slice_linux_x86_64.tar.gz && \
   chmod +x ./kubectl-slice && \
   mv ./kubectl-slice /usr/local/bin/kubectl-slice && \
   rm kubectl-slice_linux_x86_64.tar.gz

RUN eval `ssh-agent`

COPY --from=1password/op:2 /usr/local/bin/op /usr/local/bin/op

COPY --from=base /usr/local/cargo/bin/ /usr/local/cargo/bin/
ENV PATH="${PATH}:/usr/local/cargo/bin"