diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 90d2da8..695496a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,11 @@ before_script: build-master: stage: "build" script: - - "docker build --pull -t \"$CI_REGISTRY_IMAGE\" ." + - "docker build --pull \ + --build-arg VCS_REF=\"${CI_COMMIT_SHA}\" \ + --build-arg BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”` \ + --build-arg VERSION=\"NotAvailable\" \ + -t \"$CI_REGISTRY_IMAGE\" ." - "docker push \"$CI_REGISTRY_IMAGE\"" only: - "master" @@ -17,19 +21,23 @@ build-master: build: stage: "build" script: - - "docker build --pull -t \"$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG\" ." + - "docker build --pull \ + --build-arg VCS_REF=\"${CI_COMMIT_SHA}\" \ + --build-arg BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”` \ + --build-arg VERSION=\"NotAvailable\" \ + -t \"$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG\" ." - "docker push \"$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG\"" except: - "master" -deploy-github: +deploy-dockerhub: stage: "deploy" before_script: - - "docker login -u \"$GITHUB_USER\" -p \"$GITHUB_PASSWORD\"" + - "docker login -u \"$DOCKERHUB_USER\" -p \"$DOCKERHUB_PASSWORD\"" - "docker login -u \"$CI_REGISTRY_USER\" -p \"$CI_REGISTRY_PASSWORD\" $CI_REGISTRY" script: - "docker pull \"$CI_REGISTRY_IMAGE\"" - - "docker tag \"$CI_REGISTRY_IMAGE\" \"$GITHUB_USER/$GITHUB_PROJECT\"" - - "docker push \"$GITHUB_USER/$GITHUB_PROJECT\"" + - "docker tag \"$CI_REGISTRY_IMAGE\" \"$DOCKERHUB_USER/$DOCKERHUB_PROJECT\"" + - "docker push \"$DOCKERHUB_USER/$DOCKERHUB_PROJECT\"" only: - "master" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 26b0c2d..32b20ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,28 @@ -FROM "alpine:3.23" -LABEL maintainer="Julien Cabillot " +FROM "python:3.7-alpine" -# Ce projet tourne en root, mais je ne voit pas encore comment l'en empecher. -# Par défaut cron doit pouvoir changer de user pour lire chaque crontab. -# En forcant un user comme guest, même avec un shell cela ne fonctionne pas. +ARG BUILD_DATE +ARG VCS_REF +ARG VERSION -RUN apk add --no-cache tini curl +RUN apk --no-cache add --virtual build-dependencies \ + build-base libffi-dev libressl-dev && \ + pip install --no-cache-dir ansible-lint && \ + apk del build-dependencies -COPY "run.sh" "/" +LABEL "maintainer"="dockerimages@cabillot.eu" \ + "org.label-schema.name"="ansible-lint" \ + "org.label-schema.base-image.name"="docker.io/library/python" \ + "org.label-schema.base-image.version"="3.7-alpine" \ + "org.label-schema.description"="Ansible-lint in a container" \ + "org.label-schema.url"="https://github.com/ansible/ansible-lint" \ + "org.label-schema.vcs-url"="https://gitlab.cabillot.eu/jcabillot/ansible-lint/" \ + "org.label-schema.vendor"="Julien Cabillot" \ + "org.label-schema.schema-version"="1.0" \ + "org.label-schema.applications.ansiblelint.version"="latest" \ + "org.label-schema.vcs-ref"="$VCS_REF" \ + "org.label-schema.version"="$VERSION" \ + "org.label-schema.build-date"="$BUILD_DATE" \ + "org.label-schema.usage"="docker run --rm -v $(pwd):/data registry.cabillot.eu/jcabillot/ansible-lint -p /data" -#ENTRYPOINT [ "/sbin/tini", "--" ] -CMD [ "/run.sh" ] - -HEALTHCHECK --interval="10s" \ - CMD pgrep crond || exit 1 +ENTRYPOINT [ "/usr/local/bin/ansible-lint" ] +CMD [ "--help" ] \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index c39bd1f..da930b8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,7 @@ pipeline { environment { registry = 'https://registry.hub.docker.com' registryCredential = 'dockerhub_jcabillot' - dockerImage = 'jcabillot/crond' + dockerImage = 'jcabillot/ansible-lint' } agent any diff --git a/run.sh b/run.sh deleted file mode 100755 index 76d8205..0000000 --- a/run.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh - -set -o pipefail -o nounset -o errexit - -echo "${crond_line}" > "/etc/crontabs/root" -crond -f -L /dev/stdout