# === Builder Stage === FROM alpine as builder # Install cmake to manage the build process. Removing cache by `docker builder prune` RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \ apk add --cache-dir /var/cache/apk g++ make cmake # Alternatively, you can use --no-cache option to avoid creating a cache inside the container. # However, note that this will also prevent the use of the shared cache, affecting caching efficiency. # Example: # RUN apk --no-cache add g++ mahe cmake # Copy all source files from the current directory to /app in the image COPY CMakeLists.txt . COPY src ./src # Configuring, building and install the app RUN cmake . \ && make \ && make install # === Production Stage === FROM alpine # Copy only the built artifacts from the builder stage COPY --from=builder /usr/local/bin/HelloWorldApp /HelloWorldApp # Setting entry point to the app binary ENTRYPOINT ["/HelloWorldApp"]