首页 > 解决方案 > 如何向 docker 容器添加依赖项?

问题描述

我想运行一个boost asio在 docker 容器中使用的 C++ 程序。但是我的容器似乎对提升一无所知。

我的码头文件:

FROM frolvlad/alpine-gcc
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

RUN apk add --no-cache g++ && /usr/bin/g++ -o server main.cpp connection_manager.cpp connection.cpp 
mime_types.cpp reply.cpp request_handler.cpp request_parser.cpp server.cpp -lboost_system - 
lboost_thread -lpthread -std=c++11 -I/usr/include/boost

CMD ["./server"]

我写命令$docker build并得到:

在此处输入图像描述

为什么这样?

标签: dockerboost

解决方案


你的frolvlad/alpine-gcc基本形象是什么?我假设它只是 gcc 加载到高山......

您可以通过以下方式实现相同的效果:

FROM alpine:3.10 AS build

# Load build packages
RUN apk --update add --no-cache \
  build-base \
  boost boost-dev

其次是你的RUN命令等。

这里有一个工作示例两阶段 Dockerfile 来使用 boost asio 构建 HTTP 服务器:https ://github.com/kenba/via-httplib/blob/master/Dockerfile


推荐阅读