From d1e5f4a07570d36babb8bab53b137f274049fdc8 Mon Sep 17 00:00:00 2001 From: Raimondas Sirvinskas Date: Sun, 11 Feb 2024 11:16:10 +0200 Subject: [PATCH 1/2] Add FDT Dockerfile for FDT and FDT Agent --- .github/workflows/build-no-fdt-agent.yml | 87 ++++++++++++++++++++++++ .github/workflows/build-no-fdt.yml | 87 ++++++++++++++++++++++++ fdt-agent/Dockerfile | 16 +++++ fdt-agent/build.sh | 5 ++ fdt-agent/upload.sh | 5 ++ fdt/Dockerfile | 15 ++++ fdt/build.sh | 5 ++ fdt/upload.sh | 5 ++ 8 files changed, 225 insertions(+) create mode 100644 .github/workflows/build-no-fdt-agent.yml create mode 100644 .github/workflows/build-no-fdt.yml create mode 100644 fdt-agent/Dockerfile create mode 100755 fdt-agent/build.sh create mode 100755 fdt-agent/upload.sh create mode 100644 fdt/Dockerfile create mode 100755 fdt/build.sh create mode 100755 fdt/upload.sh diff --git a/.github/workflows/build-no-fdt-agent.yml b/.github/workflows/build-no-fdt-agent.yml new file mode 100644 index 0000000..fd24ef6 --- /dev/null +++ b/.github/workflows/build-no-fdt-agent.yml @@ -0,0 +1,87 @@ +name: Docker Image Build For FDT Agent + + +on: + workflow_dispatch: + inputs: + buildtag: + description: "Build Tag" + default: "dev" + type: "string" + +jobs: + build: + runs-on: ubuntu-latest + env: + DOCKER_USER: ${{secrets.DOCKER_USER}} + DOCKER_REGISTRY: ${{secrets.DOCKER_REGS}} + DOCKER_SDN_USER: ${{secrets.DOCKER_SDN_USER}} + DOCKER_SDN_REGISTRY: ${{secrets.DOCKER_SDN_REGS}} + DOCKER_TIER2_USER: ${{secrets.DOCKER_TIER2_USER}} + DOCKER_TIER2_REGISTRY: ${{secrets.DOCKER_TIER2_REGS}} + IMAGE_NAME: "cmscaltech/fdt-agent" + BUILD_DIR: "cmscaltech-docker/fdt-agent" + steps: + - name: Checkout tools repo + uses: actions/checkout@v3 + with: + repository: cmscaltech/docker + path: cmscaltech-docker + + - name: Login to First Docker Registry + id: dockerOne + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_REGS}} + username: ${{secrets.DOCKER_USER}} + password: ${{secrets.DOCKER_PASSWORD}} + + - name: Login to Second Docker Registry + id: dockerTwo + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_SDN_REGS}} + username: ${{secrets.DOCKER_SDN_USER}} + password: ${{secrets.DOCKER_SDN_PASSWORD}} + + - name: Login to Thrid Docker Registry + id: dockerThree + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_TIER2_REGS}} + username: ${{secrets.DOCKER_TIER2_USER}} + password: ${{secrets.DOCKER_TIER2_PASSWORD}} + + - name: Build Docker image + id: mainRun + if: always() && (steps.dockerOne.outcome == 'success' || steps.dockerTwo.outcome == 'success' || steps.dockerThree.outcome == 'success') + run: | + cd $BUILD_DIR + docker build . --file Dockerfile \ + --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ + --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ + --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + + - name: Docker Push Image to first registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerOne.outcome == 'success') + run: | + docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }} + + - name: Docker Push Image to second registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerTwo.outcome == 'success') + run: | + docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} + docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + + - name: Docker Push Image to third registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerThree.outcome == 'success') + run: | + docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} + docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) diff --git a/.github/workflows/build-no-fdt.yml b/.github/workflows/build-no-fdt.yml new file mode 100644 index 0000000..70c43f9 --- /dev/null +++ b/.github/workflows/build-no-fdt.yml @@ -0,0 +1,87 @@ +name: Docker Image Build For FDT Agent + + +on: + workflow_dispatch: + inputs: + buildtag: + description: "Build Tag" + default: "dev" + type: "string" + +jobs: + build: + runs-on: ubuntu-latest + env: + DOCKER_USER: ${{secrets.DOCKER_USER}} + DOCKER_REGISTRY: ${{secrets.DOCKER_REGS}} + DOCKER_SDN_USER: ${{secrets.DOCKER_SDN_USER}} + DOCKER_SDN_REGISTRY: ${{secrets.DOCKER_SDN_REGS}} + DOCKER_TIER2_USER: ${{secrets.DOCKER_TIER2_USER}} + DOCKER_TIER2_REGISTRY: ${{secrets.DOCKER_TIER2_REGS}} + IMAGE_NAME: "cmscaltech/fdt" + BUILD_DIR: "cmscaltech-docker/fdt" + steps: + - name: Checkout tools repo + uses: actions/checkout@v3 + with: + repository: cmscaltech/docker + path: cmscaltech-docker + + - name: Login to First Docker Registry + id: dockerOne + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_REGS}} + username: ${{secrets.DOCKER_USER}} + password: ${{secrets.DOCKER_PASSWORD}} + + - name: Login to Second Docker Registry + id: dockerTwo + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_SDN_REGS}} + username: ${{secrets.DOCKER_SDN_USER}} + password: ${{secrets.DOCKER_SDN_PASSWORD}} + + - name: Login to Thrid Docker Registry + id: dockerThree + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_TIER2_REGS}} + username: ${{secrets.DOCKER_TIER2_USER}} + password: ${{secrets.DOCKER_TIER2_PASSWORD}} + + - name: Build Docker image + id: mainRun + if: always() && (steps.dockerOne.outcome == 'success' || steps.dockerTwo.outcome == 'success' || steps.dockerThree.outcome == 'success') + run: | + cd $BUILD_DIR + docker build . --file Dockerfile \ + --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ + --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ + --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + + - name: Docker Push Image to first registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerOne.outcome == 'success') + run: | + docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }} + + - name: Docker Push Image to second registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerTwo.outcome == 'success') + run: | + docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} + docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + + - name: Docker Push Image to third registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerThree.outcome == 'success') + run: | + docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} + docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) diff --git a/fdt-agent/Dockerfile b/fdt-agent/Dockerfile new file mode 100644 index 0000000..8a9114f --- /dev/null +++ b/fdt-agent/Dockerfile @@ -0,0 +1,16 @@ +FROM openjdk:11-jre-slim + +ENV FDT_VERSION=0.26.3 +ENV FDT_HOME=/fdt +ENV FDT_JAR=${FDT_HOME}/fdt.jar + +RUN mkdir -p ${FDT_HOME} \ + && curl -L https://github.com/fast-data-transfer/fdt/releases/download/${FDT_VERSION}/fdt.jar -o ${FDT_JAR} + +# Expose the FDT default port +EXPOSE 54321 + +WORKDIR ${FDT_HOME} + +# Command to run FDT +CMD ["java", "-jar", "fdt.jar", "-p", "54321", "-autoport", "-portrange", "100", "-agent"] diff --git a/fdt-agent/build.sh b/fdt-agent/build.sh new file mode 100755 index 0000000..0132dcf --- /dev/null +++ b/fdt-agent/build.sh @@ -0,0 +1,5 @@ +for did in `docker images | grep hepgui | awk '{print $3}' | uniq`; +do + docker image rm $did --force; +done +docker build --no-cache -t fdt-agent --platform=linux/amd64 . diff --git a/fdt-agent/upload.sh b/fdt-agent/upload.sh new file mode 100755 index 0000000..c98cc16 --- /dev/null +++ b/fdt-agent/upload.sh @@ -0,0 +1,5 @@ +source ../environment +docker login +dockerimageid=`docker images | grep hepgui | grep latest | awk '{print $3}'` +docker tag $dockerimageid cmscaltech/hepgui:latest +docker push cmscaltech/hepgui diff --git a/fdt/Dockerfile b/fdt/Dockerfile new file mode 100644 index 0000000..7b0336a --- /dev/null +++ b/fdt/Dockerfile @@ -0,0 +1,15 @@ +FROM openjdk:11-jre-slim + +ENV FDT_VERSION=0.26.3 +ENV FDT_HOME=/fdt +ENV FDT_JAR=${FDT_HOME}/fdt.jar + +RUN mkdir -p ${FDT_HOME} \ + && curl -L https://github.com/fast-data-transfer/fdt/releases/download/${FDT_VERSION}/fdt.jar -o ${FDT_JAR} +# Expose the FDT default port +EXPOSE 54321 + +WORKDIR ${FDT_HOME} + +# Command to run FDT +CMD ["java", "-jar", "fdt.jar", "-p", "54321"] diff --git a/fdt/build.sh b/fdt/build.sh new file mode 100755 index 0000000..3f268d5 --- /dev/null +++ b/fdt/build.sh @@ -0,0 +1,5 @@ +for did in `docker images | grep hepgui | awk '{print $3}' | uniq`; +do + docker image rm $did --force; +done +docker build --no-cache -t fdt --platform=linux/amd64 . diff --git a/fdt/upload.sh b/fdt/upload.sh new file mode 100755 index 0000000..c98cc16 --- /dev/null +++ b/fdt/upload.sh @@ -0,0 +1,5 @@ +source ../environment +docker login +dockerimageid=`docker images | grep hepgui | grep latest | awk '{print $3}'` +docker tag $dockerimageid cmscaltech/hepgui:latest +docker push cmscaltech/hepgui From 92d841313114eba456f8c7d39e860ac977fb0f5e Mon Sep 17 00:00:00 2001 From: Raimondas Sirvinskas Date: Sun, 10 Mar 2024 15:29:56 +0200 Subject: [PATCH 2/2] Add FDT Dockerfile for FDT and FDT Agent --- .github/workflows/build-no-fdt-agent.yml | 112 +++++++++---------- fdt-agent/build.sh | 5 - fdt-agent/upload.sh | 5 - fdt-agent/Dockerfile => fdt/Dockerfile-agent | 1 - 4 files changed, 56 insertions(+), 67 deletions(-) delete mode 100755 fdt-agent/build.sh delete mode 100755 fdt-agent/upload.sh rename fdt-agent/Dockerfile => fdt/Dockerfile-agent (99%) diff --git a/.github/workflows/build-no-fdt-agent.yml b/.github/workflows/build-no-fdt-agent.yml index fd24ef6..26e783e 100644 --- a/.github/workflows/build-no-fdt-agent.yml +++ b/.github/workflows/build-no-fdt-agent.yml @@ -22,66 +22,66 @@ jobs: IMAGE_NAME: "cmscaltech/fdt-agent" BUILD_DIR: "cmscaltech-docker/fdt-agent" steps: - - name: Checkout tools repo - uses: actions/checkout@v3 - with: - repository: cmscaltech/docker - path: cmscaltech-docker + - name: Checkout tools repo + uses: actions/checkout@v3 + with: + repository: cmscaltech/docker + path: cmscaltech-docker - - name: Login to First Docker Registry - id: dockerOne - if: always() - uses: docker/login-action@v3 - with: - registry: ${{secrets.DOCKER_REGS}} - username: ${{secrets.DOCKER_USER}} - password: ${{secrets.DOCKER_PASSWORD}} + - name: Login to First Docker Registry + id: dockerOne + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_REGS}} + username: ${{secrets.DOCKER_USER}} + password: ${{secrets.DOCKER_PASSWORD}} - - name: Login to Second Docker Registry - id: dockerTwo - if: always() - uses: docker/login-action@v3 - with: - registry: ${{secrets.DOCKER_SDN_REGS}} - username: ${{secrets.DOCKER_SDN_USER}} - password: ${{secrets.DOCKER_SDN_PASSWORD}} + - name: Login to Second Docker Registry + id: dockerTwo + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_SDN_REGS}} + username: ${{secrets.DOCKER_SDN_USER}} + password: ${{secrets.DOCKER_SDN_PASSWORD}} - - name: Login to Thrid Docker Registry - id: dockerThree - if: always() - uses: docker/login-action@v3 - with: - registry: ${{secrets.DOCKER_TIER2_REGS}} - username: ${{secrets.DOCKER_TIER2_USER}} - password: ${{secrets.DOCKER_TIER2_PASSWORD}} + - name: Login to Thrid Docker Registry + id: dockerThree + if: always() + uses: docker/login-action@v3 + with: + registry: ${{secrets.DOCKER_TIER2_REGS}} + username: ${{secrets.DOCKER_TIER2_USER}} + password: ${{secrets.DOCKER_TIER2_PASSWORD}} - - name: Build Docker image - id: mainRun - if: always() && (steps.dockerOne.outcome == 'success' || steps.dockerTwo.outcome == 'success' || steps.dockerThree.outcome == 'success') - run: | - cd $BUILD_DIR - docker build . --file Dockerfile \ - --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }} \ - --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ - --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ - --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ - --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ - --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + - name: Build Docker image + id: mainRun + if: always() && (steps.dockerOne.outcome == 'success' || steps.dockerTwo.outcome == 'success' || steps.dockerThree.outcome == 'success') + run: | + cd $BUILD_DIR + docker build . --file Dockerfile-agent \ + --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ + --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) \ + --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} \ + --tag $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) - - name: Docker Push Image to first registry - if: always() && (steps.mainRun.outcome == 'success' && steps.dockerOne.outcome == 'success') - run: | - docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) - docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }} + - name: Docker Push Image to first registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerOne.outcome == 'success') + run: | + docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + docker push $IMAGE_NAME:${{ github.event.inputs.buildtag }} - - name: Docker Push Image to second registry - if: always() && (steps.mainRun.outcome == 'success' && steps.dockerTwo.outcome == 'success') - run: | - docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} - docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + - name: Docker Push Image to second registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerTwo.outcome == 'success') + run: | + docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} + docker push $DOCKER_SDN_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) - - name: Docker Push Image to third registry - if: always() && (steps.mainRun.outcome == 'success' && steps.dockerThree.outcome == 'success') - run: | - docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} - docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) + - name: Docker Push Image to third registry + if: always() && (steps.mainRun.outcome == 'success' && steps.dockerThree.outcome == 'success') + run: | + docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }} + docker push $DOCKER_TIER2_REGISTRY/$IMAGE_NAME:${{ github.event.inputs.buildtag }}-$(date +%Y%m%d) diff --git a/fdt-agent/build.sh b/fdt-agent/build.sh deleted file mode 100755 index 0132dcf..0000000 --- a/fdt-agent/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -for did in `docker images | grep hepgui | awk '{print $3}' | uniq`; -do - docker image rm $did --force; -done -docker build --no-cache -t fdt-agent --platform=linux/amd64 . diff --git a/fdt-agent/upload.sh b/fdt-agent/upload.sh deleted file mode 100755 index c98cc16..0000000 --- a/fdt-agent/upload.sh +++ /dev/null @@ -1,5 +0,0 @@ -source ../environment -docker login -dockerimageid=`docker images | grep hepgui | grep latest | awk '{print $3}'` -docker tag $dockerimageid cmscaltech/hepgui:latest -docker push cmscaltech/hepgui diff --git a/fdt-agent/Dockerfile b/fdt/Dockerfile-agent similarity index 99% rename from fdt-agent/Dockerfile rename to fdt/Dockerfile-agent index 8a9114f..dd45093 100644 --- a/fdt-agent/Dockerfile +++ b/fdt/Dockerfile-agent @@ -6,7 +6,6 @@ ENV FDT_JAR=${FDT_HOME}/fdt.jar RUN mkdir -p ${FDT_HOME} \ && curl -L https://github.com/fast-data-transfer/fdt/releases/download/${FDT_VERSION}/fdt.jar -o ${FDT_JAR} - # Expose the FDT default port EXPOSE 54321