Add Dockerfile for building docker image

This commit is contained in:
Cuong Manh Le
2023-06-14 04:57:02 +00:00
committed by Cuong Manh Le
parent 60d6734e1f
commit d5e6c7b13f
3 changed files with 41 additions and 0 deletions

2
.dockerignore Normal file
View File

@@ -0,0 +1,2 @@
Dockerfile
.git/

32
Dockerfile Normal file
View File

@@ -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"]

View File

@@ -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.