Cpp Deploy
DevOps & Securitycpp-deployCpp Deploy is an Agent Skill for devops & security published in the nixopus/nixopus repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Build and deploy C/C++ applications — CMake, Meson, Ninja, and Dockerfile patterns. Use when deploying a C or C++ project, or when CMakeLists.txt or meson.build is detected.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/nixopus/nixopus/blob/HEAD/api/skills/cpp-deploy/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/cpp-deploy, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
C/C++ Deployment
Detection
Project is C/C++ if CMakeLists.txt or meson.build exists in the root.
Versions
Latest CMake (or Meson) and Ninja installed during build. No explicit version pinning by default.
Build
Build Process
- Install CMake or Meson and Ninja
- Configure and build into
./build(or/build) - Executable placed in the build directory
Start Command
Executable name matches the project root directory name, located in the build directory.
Example: project my_app/ → ./build/my_app or /build/my_app.
Output
- Build directory:
/build(or./build) - Source tree not included in final container; only build artifacts
Build Systems
| File | Build system |
|---|---|
CMakeLists.txt | CMake |
meson.build | Meson |
Both use Ninja as the default generator/backend.
Install Stage Optimization
Copy in order:
CMakeLists.txtormeson.buildmeson.options(Meson)src/,include/, or full source tree
Base Images
| Stage | Image |
|---|---|
| Build | gcc or clang + CMake/Meson + Ninja |
| Runtime | debian:bookworm-slim or alpine (copy binary only) |
Dockerfile Patterns
CMake
FROM gcc:13-bookworm AS build
RUN apt-get update && apt-get install -y cmake ninja-build && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY CMakeLists.txt ./
COPY src src
RUN cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release && cmake --build build
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates libstdc++6 && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/build/my_app .
EXPOSE 8080
CMD ["./my_app"]
Meson
FROM gcc:13-bookworm AS build
RUN apt-get update && apt-get install -y meson ninja-build && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY meson.build meson.options* ./
COPY src src
RUN meson setup build -Dbuildtype=release && ninja -C build
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates libstdc++6 && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/build/my_app .
EXPOSE 8080
CMD ["./my_app"]