commit 9b24b2c925e415902fbeca71ce7b87047027ca1f Author: db1234719 Date: Thu Nov 13 09:23:36 2025 +0000 Initial commit diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..fcc581b --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,50 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-tags: true + + - name: Set version + id: vars + run: | + if [ -n "$GIT_TAG" ]; then + VERSION="$GIT_TAG" + else + VERSION="latest" + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT + + - name: Build image + run: docker build -t zxc . + + - name: Login to Gitea registry + run: | + echo "${{ secrets.CICD_PASSWORD }}" | docker login git.home.db123.ir -u username --password-stdin + + + - name: Tag image + run: | + docker tag zxc git.home.db123.ir/username/zxc:latest + if [ "$VERSION" != "latest" ]; then + docker tag zxc git.home.db123.ir/username/zxc:$VERSION + fi + + - name: Push images + run: | + docker push git.home.db123.ir/username/zxc:latest + if [ "$VERSION" != "latest" ]; then + docker push git.home.db123.ir/username/zxc:$VERSION + fi diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a4db3d3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +# Build stage +FROM alpine:3.22 AS builder +WORKDIR /app + +# Install dependencies +RUN apk add --no-cache build-base + +# Build if needed +COPY . . +RUN make build + +# Runtime stage +FROM alpine:3.22 +WORKDIR /app + +# Create non root user and group +RUN addgroup -S zxc && \ + adduser -S appuser -G zxc + +# Copy from builder +COPY --from=builder /app/mybinary /app/mybinary + +# Set ownership +RUN chown zxc:zxc /app/mybinary + +USER appuser + +# Open ports +EXPOSE 80 + +ENTRYPOINT ["/app/mybinary"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cd37210 --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +Copyright (c) 22025 db1234719. All rights reserved. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c632402 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# image-alpine template + +you can use this to create docker images easily just remember: + +1. change username and usergroup of your app from `zxc` to what you desire +2. change `username` in `.gitea/workflows/build.yml` to your username +3. change the dockerfile but note: always use latest alpine image and expose the ports you really need to expose + +you can open an issue if you had any problems using this template. \ No newline at end of file