From d5e6c7b13f22a21f46867adc9d664505b5081847 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Wed, 14 Jun 2023 04:57:02 +0000 Subject: [PATCH] Add Dockerfile for building docker image --- .dockerignore | 2 ++ Dockerfile | 32 ++++++++++++++++++++++++++++++++ README.md | 7 +++++++ 3 files changed, 41 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..95d7144 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +Dockerfile +.git/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d0d2b54 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# Using Debian bullseye for building regular image. +# Using scratch image for minimal image size. +# The final image has: +# +# - Timezone info file. +# - CA certs file. +# - /etc/{passwd,group} file. +# - Non-cgo ctrld binary. +# +# CI_COMMIT_TAG is used to set the version of ctrld binary. +FROM golang:bullseye as base + +WORKDIR /app + +RUN apt-get update && apt-get install -y upx-ucl + +COPY . . + +ARG tag=master +ENV CI_COMMIT_TAG=$tag +RUN CGO_ENABLED=0 ./scripts/build.sh linux/amd64 + +FROM scratch + +COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo +COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +COPY --from=base /etc/passwd /etc/passwd +COPY --from=base /etc/group /etc/group + +COPY --from=base /app/ctrld-linux-amd64-nocgo ctrld + +ENTRYPOINT ["./ctrld", "run"] diff --git a/README.md b/README.md index 3db1536..69018d6 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,13 @@ or $ go install github.com/Control-D-Inc/ctrld/cmd/ctrld@latest ``` +## Docker + +``` +$ docker build -t controld/ctrld . +$ docker run -d --name=ctrld -p 53:53/tcp -p 53:53/udp controld/ctrld --cd=p2 -vv +``` + # Usage The cli is self documenting, so free free to run `--help` on any sub-command to get specific usages.