Skip to content

Use latest client package in Dockerfiles and automatically build+publish client container#83

Merged
boegel merged 57 commits intoEESSI:mainfrom
bedroge:use_latest_client_package
Jun 24, 2021
Merged

Use latest client package in Dockerfiles and automatically build+publish client container#83
boegel merged 57 commits intoEESSI:mainfrom
bedroge:use_latest_client_package

Conversation

@bedroge
Copy link
Copy Markdown
Collaborator

@bedroge bedroge commented Apr 22, 2021

Tested on x86_64. Updated containers do still need to be pushed them to Docker Hub. (we really need to automate this...)

@boegel
Copy link
Copy Markdown
Contributor

boegel commented Apr 22, 2021

@bedroge Isn't this a good opportunity to look into automating the build of containers, and use the GitHub container registry instead?

@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Apr 26, 2021

@bedroge Isn't this a good opportunity to look into automating the build of containers, and use the GitHub container registry instead?

I've added a workflow that builds the client container image and pushes it to the GitHub container registry. It also uses multi-arch images now (one image name for all architectures), and a multi-stage build so that all build requirements for creating the RPMs do not have to be included in the client container. The RPMs for ppc64le have to be built from source, and that takes a while (~2-3h).

@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Apr 26, 2021

Does it make sense to still keep the test-containers.yml workflow (which still runs on every push/pr, only for x86_64), or should I remove that one?

@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Apr 26, 2021

For an example of how this multiarch container looks like, see:
https://github.com/users/bedroge/packages/container/package/client-pilot

@bedroge bedroge changed the title Use latest client package in Dockerfiles Use latest client package in Dockerfiles and automatically build+publish container Apr 26, 2021
@bedroge bedroge changed the title Use latest client package in Dockerfiles and automatically build+publish container Use latest client package in Dockerfiles and automatically build+publish client container Apr 26, 2021
@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Apr 26, 2021

Successfully tested on x86_64 and ppc64le using:

mkdir -p /tmp/$USER/{var-lib-cvmfs,var-run-cvmfs,home}
export SINGULARITY_BIND="/tmp/$USER/var-run-cvmfs:/var/run/cvmfs,/tmp/$USER/var-lib-cvmfs:/var/lib/cvmfs"
export SINGULARITY_HOME="/tmp/$USER/home:/home/$USER"
export EESSI_PILOT="container:cvmfs2 pilot.eessi-hpc.org /cvmfs/pilot.eessi-hpc.org"
singularity shell --fusemount "$EESSI_PILOT" docker://ghcr.io/bedroge/client-pilot:centos7

@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Apr 29, 2021

It's now using a cache for the Docker layers, so it doesn't have to do the 3h rebuild every time. The last check (where nothing was changed) completed in ~1 minute instead of ~3h :-)

Comment thread containers/build-or-download-cvmfs-debs.sh
@boegel
Copy link
Copy Markdown
Contributor

boegel commented Jun 19, 2021

@bedroge Merge conflicts need to be dealt with here...

@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Jun 19, 2021

That should be easy (they can be removed), but the step for building the fuse-overlayfs images requires some more work.

@bedroge
Copy link
Copy Markdown
Collaborator Author

bedroge commented Jun 23, 2021

@boegel I think this should be okay now. The client container does still include fuse-overlayfs too; it's just one (small) executable and could maybe be useful? Or shall I remove it?

@boegel boegel merged commit 468923f into EESSI:main Jun 24, 2021
@bedroge bedroge deleted the use_latest_client_package branch June 24, 2021 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants