diff --git a/.dockerignore b/.dockerignore index 8e04dfe..5769d2c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,5 +2,5 @@ !cmd/ !go.mod !go.sum -!scripts/bashbrew-arch-to-goenv.sh +!scripts/ !vendor/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0f17e27 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +FROM tianon/docker-tianon + +SHELL ["bash", "-Eeuo", "pipefail", "-xc"] + +RUN apt-get update; \ + apt-get install -y --no-install-recommends \ + golang-go \ + ; \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/src/bashbrew +COPY go.mod go.sum ./ +COPY cmd cmd +COPY vendor vendor +RUN export CGO_ENABLED=0; \ + go build -mod vendor -v -o /usr/local/bin/bashbrew ./cmd/bashbrew; \ + rm -r ~/.cache/go-build; \ + bashbrew --help > /dev/null + +ENV BASHBREW_CACHE /bashbrew-cache +# make sure our default cache dir exists and is writable by anyone (similar to /tmp) +RUN mkdir -p "$BASHBREW_CACHE"; \ + chmod 1777 "$BASHBREW_CACHE" +# (this allows us to decide at runtime the exact uid/gid we'd like to run as) + +VOLUME $BASHBREW_CACHE + +COPY scripts/bashbrew-entrypoint.sh /usr/local/bin/ +ENTRYPOINT ["bashbrew-entrypoint.sh"]