AK
Size: a a a
AK
AK
AK
AK
AK
AK
stages:
- build-go
- build-container
- deploy
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: tcp://localhost:2375
build-go:
stage: build-go
image:
name: golang:latest
script:
- |-
CGO_ENABLED=0 go build \
-installsuffix 'static' \
-o ./app ./src/
artifacts:
paths:
- app
expire_in: 1 day
when: always
only:
- tags
- deploy
build-container:
stage: build-container
image:
name: greyarch/podman
services:
- docker:stable-dind
script:
- podman build -t $APP_NAME .
- podman login $CI_REGISTRY_IP:$CI_REGISTRY_PORT -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD --tls-verify=false
- podman tag $APP_NAME $CI_REGISTRY_IP:$CI_REGISTRY_PORT/$APP_NAME:$CI_COMMIT_SHORT_SHA
- podman push $CI_REGISTRY_IP:$CI_REGISTRY_PORT/$APP_NAME:$CI_COMMIT_SHORT_SHA --tls-verify=false
dependencies:
- build-go
when: always
only:
- tags
- deploy
deploy:
stage: deploy
image: alpine/helm:latest
script:
- ls -alh
- |-
helm --namespace default upgrade -i $APP_NAME ./sudoku-api \
--set image.tag=$CI_COMMIT_SHORT_SHA \
--set image.repository=$CI_REGISTRY_IP:$CI_REGISTRY_PORT/$APP_NAME \
--set backend.env.POSTGRES_USER=$POSTGRES_USER \
--set backend.env.POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
--set backend.env.POSTGRES_HOST=$POSTGRES_HOST \
--set backend.env.POSTGRES_PORT=$POSTGRES_PORT \
--set backend.env.POSTGRES_DB=$POSTGRES_DB \
--set backend.env.APP_PORT=$APP_PORT
when: manual
only:
- tags
- deploy
AK
FROM gcr.io/distroless/static
USER nonroot:nonroot
COPY --chown=nonroot:nonroot ./app /app
ENTRYPOINT ["/app"]
АН
AG
AG
AG
АН
AG
AG
АН