This is a short overview of how to build and run XCA using docker. Install docker ============== To install docker, follow the instructions provided at https://docs.docker.com/install/ Build XCA container =================== Use the following command to build XCA container: docker build --rm --tag xca . This will build a container named "xca" using default configuration. Build options ------------- There are some options to customize build. Use dockers "--build-arg" option to add options. CODENAME : code name of ubuntu version example: --build-arg CODENAME=jammy PARALLELMFLAGS : make flags for parallel build example: --build-arg PARALLELMFLAGS=-j2 Run XCA ======= Once the container is built, run it using the following command: docker run --rm -it -e USER_ID=`id -u` --network=host \ -e DISPLAY=$DISPLAY -e "QT_X11_NO_MITSHM=1" \ xca Share local directory --------------------- Use docker volumes to share a local directory. This might be useful to store data base files. mkdir -p ./some_local_directory docker run --rm -it -e USER_ID=`id -u` --network=host \ -e DISPLAY=$DISPLAY -e "QT_X11_NO_MITSHM=1" \ -v ./some_local_directory:/backup \ xca This makes ./some_local_directory accessible in the container as /backup. Run over X-Forwarding with SSH ------------------------------ To run with X-Forwarding over an SSH connection, you can mount .Xauthority. If the application windows doesn't show up, likely you also want to switch to OpenGL done in software: docker run --rm -it --network=host \ -e DISPLAY=$DISPLAY -e "QT_X11_NO_MITSHM=1" -e LIBGL_ALWAYS_SOFTWARE=1 \ -v $HOME/.Xauthority:/home/user/.Xauthority \ xca Note: the environment variable USER_ID doesn't need to be set, since USER_ID is derived from ownership of .Xauthority file.