我想通过 dockerfile 构建一个 docker 镜像。
有一个特定的应用程序,我希望 dockerfile 具有。
我安装这个应用程序的方式是我有一些 cmake 文件,并且我使用make, install.
我想在坞文件中拥有此功能。换句话说,当构建 dockerfile 时,我希望该应用程序已安装在我的映像中。
我如何处理 dockerfile 中的文件管理事情?
我知道当我处理命令时RUN,我可以挂载文件系统,从 docker 主机到 docker 镜像。但我现在对此并不感兴趣,因为 dockerfile 将使用的文件仅用于构建应用程序,而没有其他用途。
通常Dockerfile你会:
COPY您的源文件到您的图像中。make等)。RUNmake 来构建和安装您的应用程序。一个基本的 Dockerfile 可能是:
FROM ubuntu
# Copy your source file directory into /app
COPY path/to/source /app/
# Install make
RUN apt update && apt install -y make
# Change to /app
WORKDIR /app
# run make
RUN make install
Run Code Online (Sandbox Code Playgroud)
举一个简单的例子,假设我有一个 makefile,它构建并安装一个名为 的应用程序sayhi:
install:
echo -n "#!/bin/bash\necho hello world" >> /usr/local/bin/sayhi
chmod +x /usr/local/bin/sayhi
Run Code Online (Sandbox Code Playgroud)
在同一目录中使用此 Dockerfile,我使用以下命令构建图像docker build --tag sayhi .
FROM ubuntu
COPY . /app/
RUN apt update && apt install -y make
WORKDIR /app
RUN make install
# Set the default command to run my application
CMD ["sayhi"]
Run Code Online (Sandbox Code Playgroud)
然后我可以像这样运行我的 docker 容器:
$ docker run sayhi
hello world
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13393 次 |
| 最近记录: |