Skip to content

Commit

Permalink
Add dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
andyone committed Mar 26, 2024
1 parent 9e7928d commit ff473be
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 0 deletions.
36 changes: 36 additions & 0 deletions .docker/alpine.docker
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
## REGISTRY CONFIGURATION ######################################################

ARG REGISTRY="docker.io"

## BUILDER #####################################################################

FROM golang:alpine3.17 as builder

WORKDIR /go/src/github.com/essentialkaos/atlassian-cloud-backuper

COPY . .

# hadolint ignore=DL3018
RUN apk add --no-cache git make && make deps && make all

## FINAL IMAGE #################################################################

FROM ${REGISTRY}/essentialkaos/alpine:3.17

LABEL org.opencontainers.image.title="atlassian-cloud-backuper" \
org.opencontainers.image.description="Atlassian Cloud Backuper" \
org.opencontainers.image.vendor="ESSENTIAL KAOS" \
org.opencontainers.image.authors="Anton Novojilov" \
org.opencontainers.image.licenses="Apache-2.0" \
org.opencontainers.image.url="https://kaos.sh/atlassian-cloud-backuper" \
org.opencontainers.image.source="https://github.com/essentialkaos/atlassian-cloud-backuper"

COPY --from=builder /go/src/github.com/essentialkaos/atlassian-cloud-backuper/atlassian-cloud-backuper /usr/bin/
COPY --from=builder /go/src/github.com/essentialkaos/atlassian-cloud-backuper/common/atlassian-cloud-backuper-container.knf /etc/atlassian-cloud-backuper.knf

# hadolint ignore=DL3018
RUN apk add --no-cache ca-certificates

ENTRYPOINT ["atlassian-cloud-backuper"]

################################################################################
71 changes: 71 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,21 @@ jobs:
with:
files: common/atlassian-cloud-backuper.spec

Hadolint:
name: Hadolint
runs-on: ubuntu-latest

needs: Go

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Check dockerfiles with Hadolint
uses: essentialkaos/hadolint-action@v1
with:
files: .docker/*.docker

Typos:
name: Typos
runs-on: ubuntu-latest
Expand All @@ -80,3 +95,59 @@ jobs:

- name: Check spelling
uses: crate-ci/typos@master

DockerBuild:
name: Docker Build Check
runs-on: ubuntu-latest

needs: [Hadolint, Perfecto]

env:
REGISTRY: ghcr.io

strategy:
matrix:
image: [ 'alpine' ]

steps:
- name: Check event type
run: |
if [[ "${{github.event_name}}" != "pull_request" ]] ; then
echo "::notice::Event type is not 'pull_request', all job actions will be skipped"
fi
# This step is a hack for needs+if issue with actions
# More info about issue: https://github.com/actions/runner/issues/491
- name: Checkout
uses: actions/checkout@v4
if: ${{ github.event_name == 'pull_request' }}

- name: Login to DockerHub
uses: docker/login-action@v3
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
if: ${{ github.event_name == 'pull_request' && env.DOCKERHUB_USERNAME != '' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: ${{ github.event_name == 'pull_request' }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Docker image
if: ${{ github.event_name == 'pull_request' }}
run: |
docker build --build-arg REGISTRY=${REGISTRY} -f .docker/${{matrix.image}}.docker -t ${{matrix.image}} .
- name: Show info about built Docker image
uses: essentialkaos/docker-info-action@v1
if: ${{ github.event_name == 'pull_request' }}
with:
image: ${{matrix.image}}
show-labels: true

0 comments on commit ff473be

Please sign in to comment.