在Docker容器中运行一个C++应用程序,可以通过以下步骤进行:
- 编写C++应用程序:
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
编译为main.cpp。
- 构建Dockerfile:
Dockerfile
FROM gcc:9.3.0 AS build
WORKDIR /app
COPY main.cpp .
RUN g++ main.cpp -o main
FROM ubuntu:20.04
WORKDIR /app
COPY --from=build /app/main .
ENTRYPOINT ["./main"]
此Dockerfile采用多阶段构建。第一阶段基于GCC镜像编译C++应用程序,第二阶段基于Ubuntu镜像仅复制构建好的二进制文件,并指定为入口点。
- 构建镜像:
docker build -t cpp-app .
- 运行容器:
docker run -it cpp-app
输出:
Hello World!
- 在Docker Compose中定义应用:
yaml
version: '3'
services:
cpp-app:
build: .
image: cpp-app
docker-compose run cpp-app
可以一键运行应用。