在预构建的节点映像中安装 RPM 包
Install RPM package in a pre-built node image
我正在编写一个 Node 应用程序,我想使用预构建的节点映像 (https://hub.docker.com/_/node/) 进行容器化。我需要部署只有一个 RPM 包的应用程序,但我不知道从哪里开始查找文档或一个小示例来执行此操作。
我正在查看的示例使用 yum,我在预构建节点映像中没有(根据我的理解)。
COPY src/MyApp/lib/3rdPartyApp.x86_64.rpm ./3rdPartyApp.x86_64.rpm
RUN yum localinstall 3rdPartyApp.x86_64.rpm; yum clean all && \
rm ./3rdPartyApp.x86_64.rpm
我的另一个选择是使用具有 yum 的 CentOS docker 映像。但是我 运行 遇到了在尝试使用 NVM 时安装 Node 的问题。但我也在阅读我不应该在构建 Docker 容器时尝试使用 NVM,并且有更好的方法。
FROM centos:centos7.6.1810
# Enable EPEL to install Node.js and npm
RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm && \
yum -y update && \
yum install -y npm git && \
yum clean all
您可以使用 alien 将包从一种格式转换为另一种格式。
FROM node
RUN apt-get update && apt-get install -y alien
COPY src/MyApp/lib/3rdPartyApp.x86_64.rpm ./3rdPartyApp.x86_64.rpm
RUN alien -d -i 3rdPartyApp.x86_64.rpm
这会在您的图像中留下很多额外的文件。您可以使用两步构建来清除它。
FROM node AS builder
RUN apt-get update && apt-get install -y alien
COPY src/MyApp/lib/3rdPartyApp.x86_64.rpm ./3rdPartyApp.x86_64.rpm
RUN alien -d 3rdPartyApp.x86_64.rpm
FROM node
COPY --from=builder 3rdPartyApp.x86_64.deb .
RUN dpkg -i 3rdPartyApp.x86_64.deb && rm 3rdPartyApp.x86_64.deb
我正在编写一个 Node 应用程序,我想使用预构建的节点映像 (https://hub.docker.com/_/node/) 进行容器化。我需要部署只有一个 RPM 包的应用程序,但我不知道从哪里开始查找文档或一个小示例来执行此操作。
我正在查看的示例使用 yum,我在预构建节点映像中没有(根据我的理解)。
COPY src/MyApp/lib/3rdPartyApp.x86_64.rpm ./3rdPartyApp.x86_64.rpm
RUN yum localinstall 3rdPartyApp.x86_64.rpm; yum clean all && \
rm ./3rdPartyApp.x86_64.rpm
我的另一个选择是使用具有 yum 的 CentOS docker 映像。但是我 运行 遇到了在尝试使用 NVM 时安装 Node 的问题。但我也在阅读我不应该在构建 Docker 容器时尝试使用 NVM,并且有更好的方法。
FROM centos:centos7.6.1810
# Enable EPEL to install Node.js and npm
RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm && \
yum -y update && \
yum install -y npm git && \
yum clean all
您可以使用 alien 将包从一种格式转换为另一种格式。
FROM node
RUN apt-get update && apt-get install -y alien
COPY src/MyApp/lib/3rdPartyApp.x86_64.rpm ./3rdPartyApp.x86_64.rpm
RUN alien -d -i 3rdPartyApp.x86_64.rpm
这会在您的图像中留下很多额外的文件。您可以使用两步构建来清除它。
FROM node AS builder
RUN apt-get update && apt-get install -y alien
COPY src/MyApp/lib/3rdPartyApp.x86_64.rpm ./3rdPartyApp.x86_64.rpm
RUN alien -d 3rdPartyApp.x86_64.rpm
FROM node
COPY --from=builder 3rdPartyApp.x86_64.deb .
RUN dpkg -i 3rdPartyApp.x86_64.deb && rm 3rdPartyApp.x86_64.deb