Build docker image with slim externals #396
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build docker image with slim externals | |
on: | |
schedule: | |
- cron: "30 1 * * *" | |
workflow_dispatch: | |
jobs: | |
build_sl7_slim_externals: | |
name: build_sl7 | |
runs-on: [self-hosted] | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ghcr.io/dune-daq/sl7-slim-externals | |
tags: | | |
type=raw,value=initial | |
- name: prepare build dir | |
id: prep_build_dir | |
run: | | |
build_dir="/home/dingpf/cvmfs_dunedaq" | |
cd $build_dir | |
#echo "**/llvm-14.0.2*" > .dockerignore | |
refresh_date=$(date +%y-%m-%d) | |
echo "FROM ghcr.io/dune-daq/sl7-spack:latest" > Dockerfile | |
echo 'MAINTAINER Pengfei Ding "[email protected]"' >> Dockerfile | |
echo "ENV REFRESHED_AT $refresh_date" >> Dockerfile | |
echo "ADD spack/externals /cvmfs/dunedaq.opensciencegrid.org/spack/externals" >> Dockerfile | |
echo "RUN source /cvmfs/dunedaq.opensciencegrid.org/spack/externals/ext-v1.0/spack-0.18.1-gcc-12.1.0/spack-0.18.1/share/spack/setup-env.sh && spack uninstall -y llvm" >> Dockerfile | |
echo "ADD tools /cvmfs/dunedaq.opensciencegrid.org/tools" >> Dockerfile | |
echo "ADD setup_dunedaq.sh /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh" >> Dockerfile | |
echo "ADD pypi-repo /cvmfs/dunedaq.opensciencegrid.org/pypi-repo" >> Dockerfile | |
echo "RUN source /cvmfs/dunedaq.opensciencegrid.org/spack/externals/ext-v1.0/spack-0.18.1-gcc-12.1.0/spack-0.18.1/share/spack/setup-env.sh && spack uninstall -y /o3imt5l" >> Dockerfile | |
echo 'ENTRYPOINT ["/bin/bash"]' >> Dockerfile | |
- name: Build and push Docker images | |
uses: docker/build-push-action@v3 | |
with: | |
context: /home/dingpf/cvmfs_dunedaq | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Clean up | |
if: always() | |
run: | | |
rm -f /home/dingpf/cvmfs_dunedaq/Dockerfile | |
#rm -f /home/dingpf/cvmfs_dunedaq/.dockerignore | |
docker image prune -f | |
docker container prune -f | |
docker network prune -f | |
docker volume prune -f | |
build_c7_slim_externals: | |
name: build_c7 | |
runs-on: [self-hosted] | |
needs: build_sl7_slim_externals | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ghcr.io/dune-daq/sl7-slim-externals | |
tags: | | |
type=raw,value=latest | |
- name: prepare build dir | |
run: | | |
build_dir="${{ github.workspace }}/docker-build" | |
mkdir -p $build_dir | |
cd $build_dir | |
refresh_date=$(date +%y-%m-%d) | |
echo "FROM ghcr.io/dune-daq/sl7-spack:latest" > Dockerfile | |
echo 'MAINTAINER Pengfei Ding "[email protected]"' >> Dockerfile | |
echo "ENV REFRESHED_AT $refresh_date" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/spack /cvmfs/dunedaq.opensciencegrid.org/spack" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/tools /cvmfs/dunedaq.opensciencegrid.org/tools" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/pypi-repo /cvmfs/dunedaq.opensciencegrid.org/pypi-repo" >> Dockerfile | |
echo 'ENTRYPOINT ["/bin/bash"]' >> Dockerfile | |
- name: Build and push Docker images | |
uses: docker/build-push-action@v3 | |
with: | |
context: ${{ github.workspace }}/docker-build | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build_c8_slim_externals: | |
name: build_c8 | |
runs-on: [self-hosted] | |
needs: build_sl7_slim_externals | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ghcr.io/dune-daq/c8-slim-externals | |
tags: | | |
type=raw,value=latest | |
- name: prepare build dir | |
run: | | |
build_dir="${{ github.workspace }}/docker-build" | |
mkdir -p $build_dir | |
cd $build_dir | |
refresh_date=$(date +%y-%m-%d) | |
echo "FROM ghcr.io/dune-daq/c8-spack:latest" > Dockerfile | |
echo 'MAINTAINER Pengfei Ding "[email protected]"' >> Dockerfile | |
echo "ENV REFRESHED_AT $refresh_date" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/spack /cvmfs/dunedaq.opensciencegrid.org/spack" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/tools /cvmfs/dunedaq.opensciencegrid.org/tools" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/pypi-repo /cvmfs/dunedaq.opensciencegrid.org/pypi-repo" >> Dockerfile | |
echo 'ENTRYPOINT ["/bin/bash"]' >> Dockerfile | |
- name: Build and push Docker images | |
uses: docker/build-push-action@v3 | |
with: | |
context: ${{ github.workspace }}/docker-build | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build_alma9_slim_externals: | |
name: build_alma9 | |
runs-on: [self-hosted] | |
needs: build_sl7_slim_externals | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ghcr.io/dune-daq/alma9-slim-externals | |
tags: | | |
type=raw,value=latest | |
- name: prepare build dir | |
run: | | |
build_dir="${{ github.workspace }}/docker-build" | |
mkdir -p $build_dir | |
cd $build_dir | |
refresh_date=$(date +%y-%m-%d) | |
echo "FROM ghcr.io/dune-daq/alma9-spack:latest" > Dockerfile | |
echo 'MAINTAINER Pengfei Ding "[email protected]"' >> Dockerfile | |
echo "ENV REFRESHED_AT $refresh_date" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/spack /cvmfs/dunedaq.opensciencegrid.org/spack" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/tools /cvmfs/dunedaq.opensciencegrid.org/tools" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh" >> Dockerfile | |
echo "COPY --from=ghcr.io/dune-daq/sl7-slim-externals:initial /cvmfs/dunedaq.opensciencegrid.org/pypi-repo /cvmfs/dunedaq.opensciencegrid.org/pypi-repo" >> Dockerfile | |
echo 'ENTRYPOINT ["/bin/bash"]' >> Dockerfile | |
- name: Build and push Docker images | |
uses: docker/build-push-action@v3 | |
with: | |
context: ${{ github.workspace }}/docker-build | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} |