mirror of
https://github.com/acme-dns/acme-dns.git
synced 2026-04-27 04:45:48 +03:00
[PR #275] rebase acme-dns docker image on google distroless #368
Labels
No labels
Documentation
Documentation
bug
enhancement
feature request
feature request
help wanted
pull-request
question
security
security
testing
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/acme-dns#368
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/acme-dns/acme-dns/pull/275
Author: @slippycheeze
Created: 8/30/2021
Status: 🔄 Open
Base:
master← Head:master📝 Commits (1)
4792dedrebase acme-dns docker image on google distroless📊 Changes
1 file changed (+17 additions, -12 deletions)
View changed files
📝
Dockerfile(+17 -12)📄 Description
Improvements over the current Dockerfile are:
It uses the GoogleContainerTools/distroless static image as base,
removing everything from the container including the shell, dynamic
linker, etc.
It builds a fully static acme-dns binary, including static-linking the
CGO components, to be able to run without any dynamic linking, or libc,
on the target system.
It assembles the "release" layout of the application and support
directories on the builder, then copies them wholesale to the
final image.
It only copies the
acme-dnsbinary; it exclused the.gitdirectory, and all other files, that are shipped in the current image.
It uses a shallow checkout to build, which is appropriate since the
builder is a throw-away image and will be destroyed when the build
process is done.
It uses the latest version of golang 1.*, ensuring that improvements and
security fixes are picked up automatically.
Limitations:
The distroless image doesn't provide anything beyond the bare minimum to run
the static binary – notably, no
/bin/shis present.If this is a concern the best strategy would be to add a second image,
deploying
FROM gcr.io/distroless/static:debugwhich provides busybod as/bin/shand the rest of the standard utilities.I have not implemented this solution at this time.
Background:
The Google distroless images provide a base for running software containers
with the absolute bare minimum of files. For more details see
https://github.com/GoogleContainerTools/distroless
This bases the acme-dns docker image off the distroless "static" image,
gcr.io/distroless/static, which is suitable for running fully staticapplication in languages like go – it has no dynamic linker.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.