Dockerfile
This commit is contained in:
24
Dockerfile
Normal file
24
Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
FROM golang:1.25-alpine AS iptv-img-builder
|
||||
ARG GOOS
|
||||
ARG GOARCH
|
||||
ARG IPTVC_VERSION
|
||||
ENV CGO_ENABLED=0
|
||||
ENV GOOS=${GOOS:-linux}
|
||||
ENV GOARCH=${GOARCH:-amd64}
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
COPY . .
|
||||
RUN go build \
|
||||
-trimpath \
|
||||
-ldflags="-s -w -X main.version=${IPTVC_VERSION}" \
|
||||
-o /app/iptvc \
|
||||
.
|
||||
|
||||
FROM alpine:3.22.2 AS iptv-img-checker
|
||||
LABEL org.opencontainers.image.authors="Anthony Axenov <anthonyaxenov@gmail.com>"
|
||||
WORKDIR /app
|
||||
RUN apk add --no-cache ca-certificates tzdata
|
||||
RUN addgroup -S iptvc-user && adduser -S -G iptvc-user -H -s /sbin/nologin iptvc-user
|
||||
COPY --from=iptv-img-builder --chown=iptvc-user:iptvc-user /app/iptvc /app/iptvc
|
||||
USER iptvc-user
|
||||
ENTRYPOINT ["/app/iptvc"]
|
||||
15
build-docker-image.sh
Executable file
15
build-docker-image.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
[[ "$1" ]] && DOCKER_TAG="$1" || DOCKER_TAG="latest"
|
||||
[[ "$1" ]] && GIT_TAG="$1" || GIT_TAG=$(git describe --tags --always)
|
||||
GIT_HASH=$(git rev-parse --short HEAD)
|
||||
IPTVC_VERSION="${GIT_TAG}-${GIT_HASH}"
|
||||
|
||||
git checkout "${GIT_TAG}" 2>/dev/null
|
||||
docker build \
|
||||
--build-arg IPTVC_VERSION="${IPTVC_VERSION}" \
|
||||
--tag iptvc:"${DOCKER_TAG}" \
|
||||
--tag git.axenov.dev/iptv/iptvc:"${DOCKER_TAG}" \
|
||||
.
|
||||
|
||||
docker push git.axenov.dev/iptv/iptvc:"${DOCKER_TAG}"
|
||||
Reference in New Issue
Block a user