Burrow
Burrow copied to clipboard
Dockerfile expects burrow to already be built
The Dockerfile seems to expect you to provide the burrow binary, which seems to go against common expectations of portability for a Dockerfile. I could be wrong, but am curious as to why this decision was made? Why not just have the Dockerfile install burrow? If you want to use the iron + binary tactic for size purposes, I would provide both options out of the box.
In the Dockerfile:
ADD burrow /app/
In addition, the docker-compose.yml file mounts the docker-config directory to /etc/burrow, but the Dockerfile expects you to do that manually. Wouldn't it make more sense to have the Dockerfile simply require that you mount your config directory to /etc/burrow?
Also, it expects the binary to be lowercase, but it gets installed as uppercase.
For example:
FROM golang:alpine3.7
MAINTAINER LinkedIn Burrow "https://github.com/linkedin/Burrow"
RUN apk update
RUN apk add git
RUN go get github.com/linkedin/Burrow
WORKDIR src/github.com/linkedin/Burrow
RUN go install
RUN mkdir /app
WORKDIR /app
RUN mv /go/bin/Burrow ./burrow
CMD ["/app/burrow", "--config-dir", "/etc/burrow"]
@ianseyer I hit this as well. Here's the Dockerfile I'm using locally for now if it's helpful. I volume-mount my burrow.toml into /etc/burrow/:
FROM golang:1.9.2-alpine3.7 as builder
RUN apk update && apk add git
RUN go get github.com/linkedin/Burrow
FROM alpine:3.7
WORKDIR /app/
COPY --from=builder /go/bin/Burrow .
CMD ["/app/Burrow", "--config-dir", "/etc/burrow"]
The Dockerfile for the project was created to build the image as part of the release process, where it could then be posted for download. We've seen a number of issues with people having problems building the Docker image and then posting here about it, because the steps were convoluted, and therefore people ran into a lot of problems with certificates, and with downloading things to compile.
Given that nobody appears to be happy either way, and Docker is not a core part of this project, I'm considering dropping the Dockerfile entirely and people can just maintain it themselves, or via a separate project for just the Docker build.
it is 2022 now. Any chance to revisit this? Feel like having a docker image is pretty common.