Dockerfile 996 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. FROM ubuntu:22.04
  2. LABEL BUILD="docker build -t coredhcp/coredhcp -f Dockerfile ."
  3. LABEL RUN="docker run --rm -it coredhcp/coredhcp"
  4. # Install dependencies
  5. RUN apt-get update && \
  6. apt-get install -y --no-install-recommends \
  7. sudo \
  8. iproute2 \
  9. # to fetch the Go toolchain
  10. ca-certificates \
  11. wget \
  12. # for go get
  13. git \
  14. # for CGo support
  15. build-essential \
  16. && \
  17. rm -rf /var/lib/apt/lists/*
  18. # install Go
  19. WORKDIR /tmp
  20. RUN set -exu; \
  21. wget https://golang.org/dl/go1.23.4.linux-amd64.tar.gz ;\
  22. tar -C / -xvzf go1.23.4.linux-amd64.tar.gz
  23. ENV PATH="$PATH:/go/bin:/build/bin"
  24. ENV GOPATH=/go:/build
  25. ENV PROJDIR=/build/src/github.com/coredhcp/coredhcp
  26. RUN mkdir -p $PROJDIR
  27. COPY . $PROJDIR
  28. # build coredhcp
  29. RUN set -exu ;\
  30. cd $PROJDIR/cmds/coredhcp ;\
  31. go get -v ./... ;\
  32. CGO_ENABLED=1 go build ;\
  33. cp coredhcp /bin
  34. EXPOSE 67/udp
  35. EXPOSE 547/udp
  36. CMD coredhcp --conf /etc/coredhcp/config.yaml