diff --git a/Dockerfile b/Dockerfile index 29575da..bd2a473 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM debian:11-slim as epics-deps +ARG DOCKER_IMAGE_BASE +FROM ${DOCKER_IMAGE_BASE} as epics-deps # set correct timezone ENV DEBIAN_FRONTEND noninteractive diff --git a/docker-compose.yml b/docker-compose.yml index 0d654f8..175aa1c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,104 +11,131 @@ x-labels: org.opencontainers.image.vendor: ${VENDOR} org.opencontainers.image.version: ${COMMIT_HASH}-${BUILD_DATE} + +x-args: &args + DOCKER_IMAGE_BASE: ${DOCKER_IMAGE_BASE} + DOCKER_ETHERIP_BASE_IMAGE: ${DOCKER_ETHERIP_BASE_IMAGE} + services: etherip: - image: ${DOCKER_IMAGE_PREFIX}/etheripioc-base:${COMMIT_HASH}-${BUILD_DATE} + image: ${DOCKER_ETHERIP_BASE_IMAGE} build: - context: . - target: base + args: + <<: *args labels: <<: *default-labels + context: . + target: base rf-bo: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-rf-bo:${COMMIT_HASH}-${BUILD_DATE} build: - context: . - dockerfile: Dockerfile - target: rf_bo + args: + <<: *args labels: <<: *default-labels + context: . + dockerfile: Dockerfile.ioc + target: rf_bo rf-si: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-rf-si:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: rf_si - labels: - <<: *default-labels delta: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-delta:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: delta - labels: - <<: *default-labels fcplc01: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-fcplc01:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: fcplc01 - labels: - <<: *default-labels fcplc02: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-fcplc02:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: fcplc02 - labels: - <<: *default-labels fcplc03: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-fcplc03:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: fcplc03 - labels: - <<: *default-labels linac: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-skidlinac:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: linac - labels: - <<: *default-labels petraV: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-skidpetra5:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: petraV - labels: - <<: *default-labels petraVII: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-skidpetra7:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: petraVII - labels: - <<: *default-labels delta_v2: image: ${DOCKER_IMAGE_PREFIX}/etheripioc-delta-v2:${COMMIT_HASH}-${BUILD_DATE} build: + args: + <<: *args + labels: + <<: *default-labels context: . dockerfile: Dockerfile target: delta_v2 - labels: - <<: *default-labels environment: - TABLE_URL_COMMON="http://0.0.0.0/example-constants/delta/mm2k-conv-tables" - FILE_LV="LV-example.txt" diff --git a/entrypoint.sh b/entrypoint.sh index 2d3ae11..162e2c9 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,13 +1,17 @@ #!/bin/sh set -eu -echo "##########################################################################" -echo "# ${NAME} - Port ${IOC_PROCSERV_SOCK}" -echo "##########################################################################" -/usr/local/bin/procServ \ - --logfile - \ - --chdir "$(pwd)/iocBoot/iocetheripIOC/" \ - --foreground \ - --ignore ^D^C \ - --name "${NAME}-IOC" \ - unix:${IOC_PROCSERV_SOCK} ./${CMD} +if [ -z "$1" ]; then + echo "##########################################################################" + echo "# ${NAME} - Port ${IOC_PROCSERV_SOCK}" + echo "##########################################################################" + /usr/local/bin/procServ \ + --logfile - \ + --chdir "$(pwd)/iocBoot/iocetheripIOC/" \ + --foreground \ + --ignore ^D^C \ + --name "${NAME}-IOC" \ + unix:${IOC_PROCSERV_SOCK} ./${CMD} +else + exec "$@" +fi diff --git a/scripts/config.sh b/scripts/config.sh index 91e751b..7cc551b 100755 --- a/scripts/config.sh +++ b/scripts/config.sh @@ -4,6 +4,7 @@ set -exu DOCKER_REGISTRY=dockerregistry.lnls-sirius.com.br DOCKER_USER_GROUP=gas DOCKER_IMAGE_PREFIX=${DOCKER_REGISTRY}/${DOCKER_USER_GROUP} +DOCKER_IMAGE_BASE=debian:11-slim AUTHOR="Claudio F. Carneiro " BRANCH=$(git branch --no-color --show-current) @@ -14,20 +15,22 @@ DEPARTMENT=GAS REPOSITORY=$(git remote show origin |grep Fetch|awk '{ print $3 }') VENDOR="CNPEM" -BUILD_ENVS="\ - BRANCH=${BRANCH} \ - BUILD_DATE=${BUILD_DATE} \ - COMMIT_HASH=${COMMIT} \ - DEPARTMENT=${DEPARTMENT} \ - DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} \ - REPOSITORY=${REPOSITORY} \ - VENDOR=${VENDOR}" +cat << EOF > .env +# Generic +DOCKER_REGISTRY=${DOCKER_REGISTRY} +DOCKER_USER_GROUP=${DOCKER_USER_GROUP} -if [ -f .env ]; then - > .env - echo AUTHOR=${AUTHOR} >> .env - echo BUILD_DATE_RFC339=${BUILD_DATE_RFC339} >> .env - for var in ${BUILD_ENVS}; do - echo ${var} >> .env - done -fi +AUTHOR=${AUTHOR} +BRANCH=${BRANCH} +BUILD_DATE=${BUILD_DATE} +BUILD_DATE_RFC339=${BUILD_DATE_RFC339} +COMMIT=${COMMIT} +DEPARTMENT=${DEPARTMENT} +REPOSITORY=${REPOSITORY} +VENDOR=${VENDOR} + +# IOC +DOCKER_ETHERIP_BASE_IMAGE=${DOCKER_IMAGE_PREFIX}/etheripioc-base:${COMMIT_HASH}-${BUILD_DATE} +DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} +DOCKER_IMAGE_BASE=${DOCKER_IMAGE_BASE} +EOF