Compare commits
1
Commits
ba5102092f
...
next
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
869b5ba67f |
+5
-1
@@ -1,4 +1,8 @@
|
|||||||
.git
|
# .git is sent without its config. Without a VERSION build argument the
|
||||||
|
# stage that compiles runs `git describe --tags --always` on .git, which
|
||||||
|
# does not need .git/config; that file can hold a credential, such as a
|
||||||
|
# password in a remote URL or the token the CI checkout step stores there.
|
||||||
|
.git/config
|
||||||
.gitignore
|
.gitignore
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.env*
|
.env*
|
||||||
|
|||||||
+18
-7
@@ -43,13 +43,24 @@ COPY . .
|
|||||||
RUN make test
|
RUN make test
|
||||||
|
|
||||||
# VERSION is declared here, not earlier: a new value reruns only the
|
# VERSION is declared here, not earlier: a new value reruns only the
|
||||||
# build, not script/bootstrap or the tests. CGO stays enabled for
|
# build, not script/bootstrap or the tests. Given none, the version is
|
||||||
# govips; -trimpath keeps build paths out of the binary, and -s -w
|
# `git describe --tags --always` of the .git in the build context (git
|
||||||
# leave out the symbol table and debug information.
|
# comes from script/bootstrap): the tag on a tagged commit, tag-N-gHASH
|
||||||
ARG VERSION=dev
|
# after one, the short commit when no tag is reachable. A context that
|
||||||
RUN CGO_ENABLED=1 GOTOOLCHAIN=auto go build -trimpath \
|
# carries .git and still yields no version fails the build; one without
|
||||||
-ldflags "-s -w -X main.Version=${VERSION}" \
|
# .git, as from a source tarball, stamps an empty version. CGO stays
|
||||||
-o /pixad ./cmd/pixad
|
# enabled for govips; -trimpath keeps build paths out of the binary, and
|
||||||
|
# -s -w leave out the symbol table and debug information.
|
||||||
|
ARG VERSION
|
||||||
|
RUN version="${VERSION:-$(git describe --tags --always)}"; \
|
||||||
|
if [ -e .git ] && { [ -z "$version" ] || [ "$version" = dev ] || \
|
||||||
|
[ "$version" = unknown ]; }; then \
|
||||||
|
echo "the build context carries .git but yields no version" >&2; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
CGO_ENABLED=1 GOTOOLCHAIN=auto go build -trimpath \
|
||||||
|
-ldflags "-s -w -X main.Version=${version}" \
|
||||||
|
-o /pixad ./cmd/pixad
|
||||||
|
|
||||||
# Runtime stage
|
# Runtime stage
|
||||||
# alpine:3.21, 2026-02-25
|
# alpine:3.21, 2026-02-25
|
||||||
|
|||||||
@@ -29,6 +29,13 @@ P2: security: referer blacklist
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-10-02 a plain `docker build .` stamps the tag or short commit, not
|
||||||
|
`dev` (closes #166): `.dockerignore` lets `.git` into the build context,
|
||||||
|
without `.git/config`; with no `VERSION` build argument the `Dockerfile`
|
||||||
|
takes the version from `git describe --tags --always`, and fails the build if
|
||||||
|
the context carries `.git` and no version comes out; `ARG VERSION` has no
|
||||||
|
default; pixad logs its version, with its name and architecture, as its first
|
||||||
|
log line at startup.
|
||||||
- 2026-09-29 the container makes `/var/lib/pixa` usable by itself (closes
|
- 2026-09-29 the container makes `/var/lib/pixa` usable by itself (closes
|
||||||
#159): `deploy/docker-entrypoint.sh` creates the directory if it is missing,
|
#159): `deploy/docker-entrypoint.sh` creates the directory if it is missing,
|
||||||
gives the directory and everything in it to `pixad` when the directory or one
|
gives the directory and everything in it to `pixad` when the directory or one
|
||||||
|
|||||||
+4
-1
@@ -56,6 +56,9 @@ func run(_ *cobra.Command, _ []string) {
|
|||||||
middleware.New,
|
middleware.New,
|
||||||
healthcheck.New,
|
healthcheck.New,
|
||||||
),
|
),
|
||||||
fx.Invoke(func(*server.Server) {}),
|
fx.Invoke(
|
||||||
|
func(log *logger.Logger) { log.Identify() },
|
||||||
|
func(*server.Server) {},
|
||||||
|
),
|
||||||
).Run()
|
).Run()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user