本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
此容器镜像包含Perl 5.30,作为源到镜像(S2I)基础镜像,用于构建Perl 5.30应用程序。用户可选择基于RHEL、CentOS或Fedora的构建器镜像。RHEL镜像可在Red Hat容器目录获取,CentOS镜像可在Quay.io获取,Fedora镜像可在Fedora Registry获取。生成的镜像可使用podman运行。
注意:虽然本README中的示例使用podman,但您可以用docker替换所有此类调用,参数保持不变。
Perl 5.30容器镜像是构建和运行各种Perl 5.30应用程序及框架的基础平台。Perl是一种高级编程语言,源于C、sed、awk和shell脚本,擅长处理进程和文件,尤其擅长处理文本。Perl的特点是实用性和高效性,常见应用包括系统管理工具和Web编程。
此容器镜像包含npm工具,用户可用于安装Web应用的JavaScript模块。镜像中包含的npm或nodejs版本不做保证,其版本可能随时变更,nodejs仅为支持npm运行而包含。
本示例假设您使用centos/perl-530-centos7镜像,可通过OpenShift中的perl:5.30镜像流标签获取。
构建nodejs-sample-app应用:
oc new-app perl:5.30~[***]
oc get pods oc exec <pod> -- curl 127.0.0.1:8080
此镜像支持OpenShift中的源到镜像(S2I)策略。S2I是一种OpenShift框架,可简化将应用源代码作为输入、使用构建器镜像(如本Perl容器镜像)生成运行应用的新镜像的过程。
为支持S2I框架,构建器镜像中包含以下重要脚本:
/usr/libexec/s2i/assemble脚本:用于生成包含应用制品的新镜像。该脚本接收应用源代码并将其放置到镜像内的适当目录,利用Perl应用开发中的常见模式(见下文“环境变量”部分)。
/usr/libexec/s2i/run脚本:被设置为生成的容器镜像(包含应用制品的新镜像)的默认命令,用于在生产环境中运行httpd。
与源到镜像策略相比,使用Dockerfile是构建包含应用的Perl容器镜像的更灵活方式。当源到镜像不够灵活或在OpenShift环境外构建镜像时,可使用Dockerfile。
使用Dockerfile构建Perl镜像的步骤如下:
podman pull quay.io/centos7/perl-530-centos7
本示例使用CentOS镜像quay.io/centos7/perl-530-centos7。
使用示例应用([***]
git clone [***] app-src
此步骤通常至少包括以下部分:将应用源代码放入容器、安装依赖、设置生成镜像的默认命令。用户可选择手动设置并在Dockerfile中显式使用perl和cpanm命令(见3.1),或使用镜像中的源到镜像脚本(见3.2,有关这些脚本的更多信息见“源到镜像框架和脚本”部分)。
创建如下Dockerfile:
FROM quay.io/centos7/perl-530-centos7 # 添加应用源代码 ADD app-src . # 安装依赖 RUN export PATH=${PATH}:/opt/rh/rh-perl530/root/usr/bin/&& \ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/rh/rh-perl530/root/usr/lib64 && \ cpanm --notest -l extlib Module::CoreList && \ cpanm --notest -l extlib --installdeps . CMD sed -i '1i<Location/>' /opt/app-root/etc/httpd.d/40-psgi.conf CMD sed -i '2iSetHandler perl-script' /opt/app-root/etc/httpd.d/40-psgi.conf CMD sed -i '3iPerlResponseHandler Plack::Handler::Apache2' /opt/app-root/etc/httpd.d/40-psgi.conf CMD sed -i '4iPerlSetVar psgi_app app.psgi' /opt/app-root/etc/httpd.d/40-psgi.conf CMD sed -i '5i</Location>' /opt/app-root/etc/httpd.d/40-psgi.conf # 使用标准方式运行应用的脚本 CMD exec httpd -C 'Include /opt/app-root/etc/httpd.conf' -D FOREGROUND
创建如下Dockerfile:
FROM quay.io/centos7/perl-530-centos7 # 将应用源代码添加到assemble脚本预期的目录,并设置权限以非root用户运行容器 USER 0 ADD app-src /tmp/src RUN chown -R 1001:0 /tmp/src USER 1001 # 安装依赖 RUN /usr/libexec/s2i/assemble # 设置生成镜像的默认命令 CMD /usr/libexec/s2i/run
podman build -t perl-app .
podman run -d perl-app
要设置环境变量,可在源代码仓库的.s2i/environment文件中以键值对形式添加。
允许安装所有指定的CPAN包并运行其测试。默认值为false。
指定cpanminus用于安装依赖的镜像URL。默认不指定URL。
设为“true”以启用修改后的Perl模块自动重载。
StartServers指令设置启动时创建的子服务器进程数。默认值为8。
Apache将处理的同时请求数。默认值为256,但在内存有限时会自动降低。
覆盖PSGI应用检测:
./*.psgi文件,mod_perl将配置为执行该文件。覆盖PSGI应用处理的位置URI路径。默认值为“/”。
Dockerfile及其他源代码可在[***]Dockerfile,RHEL7的名为Dockerfile.rhel7,Fedora的名为Dockerfile.fedora。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429