mirror of
https://github.com/acme-dns/acme-dns.git
synced 2026-04-27 04:45:48 +03:00
[PR #274] [CLOSED] rebase acme-dns docker image on google distroless #370
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#370
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/274
Author: @slippycheeze
Created: 8/30/2021
Status: ❌ Closed
Base:
master← Head:patch-1📝 Commits (2)
4e4f9d9rebase acme-dns docker image on google distrolessd7488e7Update Dockerfile📊 Changes
1 file changed (+17 additions, -12 deletions)
View changed files
📝
Dockerfile(+17 -12)📄 Description
This rewritten Dockerfile improves the acme-dns image in a number of ways:
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.
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.