Add Docker container with qlever-control tools and host Docker access#1
Conversation
Co-authored-by: physikerwelt <2777736+physikerwelt@users.noreply.github.com>
Co-authored-by: physikerwelt <2777736+physikerwelt@users.noreply.github.com>
…y OpenJDK 11 Co-authored-by: physikerwelt <2777736+physikerwelt@users.noreply.github.com>
Co-authored-by: physikerwelt <2777736+physikerwelt@users.noreply.github.com>
Co-authored-by: physikerwelt <2777736+physikerwelt@users.noreply.github.com>
|
@copilot can you change the base image from ubuntu to debian. Also add a github compile and push action that pushes the github to ghcr.io sdimilar to https://github.com/gipplab/D-LOCKSS/blob/main/.github/workflows/build.yml |
|
@copilot discuss if debian or busyboxis the better base image |
…for ghcr.io Co-authored-by: physikerwelt <2777736+physikerwelt@users.noreply.github.com>
Done! Changed base image from Ubuntu 22.04 to Debian Bookworm (slim) and added GitHub Actions workflow to build and push to ghcr.io/gipplab/qlever-control. Changes in commit 48f8621:
All tools verified working with Debian base. |
Debian vs BusyBox - Analysis: Debian (current choice) is better for this use case. Here's why: Requirements Analysis:
Debian Advantages:
BusyBox Limitations:
Size Comparison (estimated):
Recommendation: Keep Debian Bookworm (slim) |
| lsb-release \ | ||
| wget \ | ||
| git \ | ||
| docker.io \ |
There was a problem hiding this comment.
The docker.io from the host should be used why would we want to install it. That might create confusion.
There was a problem hiding this comment.
We need the Docker CLI client installed in the container to communicate with the host's Docker daemon via the socket mount.
What we install: docker.io package (provides /usr/bin/docker CLI binary)
What we DON'T install/run: Docker daemon (dockerd service)
How it works:
- Container has Docker CLI binary (
/usr/bin/docker) - Socket mount (
-v /var/run/docker.sock:/var/run/docker.sock) connects CLI to host's daemon - When you run
docker psin the container, the CLI sends commands to the host's daemon via the socket
Without docker.io installed:
dockercommand wouldn't exist in the container- entrypoint.sh line 22 (
docker run --rm hello-world) would fail - Users couldn't run
docker psor any docker commands from inside the container
The docker.io installation is only for the CLIENT tool, not the daemon. The host's Docker daemon does all the actual work.
There was a problem hiding this comment.
can't we use the docker command from the host os?
Containerized environment for running qlever-control with all required dependencies and the ability to execute Docker commands on the host VM.
Implementation
/var/run/docker.sockand workspace directoryTEST_DOCKER=trueenvironment variableghcr.io/gipplab/qlever-controlon push, PR, and release eventsUsage
Notes
/workspacefor persistent filesOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.