Packaging

Package your application as a Docker image. The command line you specify at job submission runs inside the container.

Use the smallest Linux base image that meets your needs. Alpine Linux (alpine:3) is recommended — it is under 10 MB and has a full package manager (apk). If your application requires glibc (common for compiled C/C++ binaries), use debian:bookworm-slim or ubuntu:24.04 instead.

Minimal Dockerfile example

FROM alpine:3

# Install runtime dependencies
RUN apk add --no-cache libstdc++

# Copy your application binary
COPY myapp /usr/local/bin/myapp

ENTRYPOINT ["myapp"]

Build and publish

Build the image
docker build -t yourdockerhubuser/myapp:1.0 .

Log in to Docker Hub
docker login

Push to Docker Hub
docker push yourdockerhubuser/myapp:1.0

Then reference the image in your job submission as docker:yourdockerhubuser/myapp:1.0

Keep images small — large images increase startup latency on every node that hasn't cached them. Avoid bundling unnecessary tools, package caches, or build-time dependencies in the final image.