Tags: #docker #fastly #cli #shasum #awk #regex #rust
FROM rust:latest
LABEL maintainer="Fastly OSS <oss@fastly.com>"
ENV RUST_TOOLCHAIN=stable
RUN rustup toolchain install ${RUST_TOOLCHAIN}
RUN rustup target add wasm32-wasi --toolchain ${RUST_TOOLCHAIN}
RUN apt-get update && apt-get install -y curl jq
RUN export FASTLY_CLI_VERSION=$(curl --silent https://api.github.com/repos/fastly/cli/releases/latest | jq -r .tag_name | cut -d 'v' -f 2) \
GOARCH=$(dpkg --print-architecture) \
&& curl -vL "https://github.com/fastly/cli/releases/download/v${FASTLY_CLI_VERSION}/fastly_v${FASTLY_CLI_VERSION}_linux-$GOARCH.tar.gz" -o fastly.tar.gz \
&& curl -vL "https://github.com/fastly/cli/releases/download/v${FASTLY_CLI_VERSION}/fastly_v${FASTLY_CLI_VERSION}_SHA256SUMS" -o sha256sums \
&& dlsha=$(shasum -a 256 fastly.tar.gz | cut -d " " -f 1) && expected=$(cat sha256sums | awk -v pat="$dlsha" '$0~pat' | cut -d " " -f 1) \
&& if [[ "$dlsha" != "$expected" ]]; then echo "shasums don't match" && exit 1; fi
RUN tar -xzf fastly.tar.gz --directory /usr/bin && rm fastly.tar.gz
WORKDIR /app
ENTRYPOINT ["/usr/bin/fastly"]
CMD ["--help"]
# docker build -t fastly/cli/rust . -f ./Dockerfile-rust
# docker run -v $PWD:/app -it -p 7676:7676 fastly/cli/rust compute serve --addr="0.0.0.0:7676"