【问题标题】:Need Uri for Activeperl installation in docker在 docker 中安装 Activeperl 需要 Uri
【发布时间】:2020-09-25 06:23:49
【问题描述】:

对于我的用例,我需要创建一个 Activeperl 应用程序的 windows 容器。我找到了一个GitHub link,它解释了草莓 Perl 的过程。

链接中的代码 sn-p

RUN \
    if(!(Test-Path -Path 'C:\Temp')) \
    { \
        New-Item \
            -Path 'C:\Temp' \
            -ItemType Directory \
            -Verbose | Out-Null ; \
    } ; \
    \   
    Invoke-WebRequest \
        -Uri "http://strawberryperl.com/download/$ENV:PERL_VERSION/strawberry-perl-$ENV:PERL_VERSION-64bit.zip" \
        -OutFile "C:\\Temp\\strawberry-perl-$ENV:PERL_VERSION-64bit.zip" \
        -UseBasicParsing \
        -Verbose ; \
    \
    Expand-Archive \
        -Path "C:\\Temp\\strawberry-perl-$ENV:PERL_VERSION-64bit.zip" \
        -DestinationPath 'C:\Program Files\Perl' \
        -Verbose ; \
    \
    Set-ItemProperty \
        -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment' \
        -Name 'Path' \
        -Value $($ENV:Path + ';C:\Program Files\Perl\perl\bin;C:\Program Files\Perl\perl\site\bin;C:\Program Files\Perl\c\bin') \
        -Verbose ;

Strawberryperl Uri - http://strawberryperl.com/download/$ENV:PERL_VERSION/strawberry-perl-$ENV:PERL_VERSION-64bit.zip

对我来说,我想要一个等效的 Uri 来下载 Activeperl 而不是 Strawberryperl。我什至可以使用已经安装了 activeperl 的 Windows 容器映像。我只是找不到他们中的任何一个。

【问题讨论】:

    标签: docker perl docker-for-windows


    【解决方案1】:

    因为 ActivePerl 没有提供下载 Perl 压缩版本的选项。 这就是我能够将活动 Perl 传输到 Windows 容器的方法

    在我的 Windows 主机上,我从 https://activeperl.software.informer.com/download/ 下载了 Active Perl

    下载的文件是ActivePerl-5.28.1.0000-MSWin32-x64-e90bcbf1.msi 我已将其安装在位置 C:\Perl64\

    将此 Perl64 文件夹复制到名为 Perl_root 的新文件夹中,以便可以通过 Dockerfile 将其复制到容器中。在与 Perl_root 相同的位置创建一个名为 Dockerfile 的文件。

    文件系统根目录

    C:\
     |__ docker_trial
         |___ Perl_root
         |___ Dockerfile
    

    Dockerfile:

    #pulled a windows container from docker hub
    FROM mcr.microsoft.com/windows/servercore:1607-amd64
    
    ADD Perl_root .
    

    打开命令提示符并导航到 dockerfile 所在的文件夹。

    >docker build --tag dockertrail:1.0 .
    >docker run -it --name tag1 dockertrail:1.0
    

    打开 docker 容器内的终端后,打开 PowerShell 并创建更新环境变量 Path,如下所示

    Powershell>[Environment]::SetEnvironmentVariable("Path",$env:Path+"C:\Perl64\site\bin;C:\Perl64\bin","Machine")
    

    从 PowerShell 和容器中退出。现在重启容器 tag1,让环境变量生效。

    再次启动容器 tag1,一旦启动,打开 PowerShell 并运行命令$env:Path,您必须能够看到添加到环境变量中的 perl 路径。

    现在使用命令perl -v 检查 Perl 的功能 这应该打印 perl 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 2012-08-29
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多