【发布时间】:2020-06-15 13:33:03
【问题描述】:
- 开发环境:Windows Server 2019
- Docker 版本:19.03.5
official Ghostscript documentation 说这是关于在 Windows 上安装的:
4.1 安装
要在 Windows 上安装 Ghostscript,您应该运行安装程序可执行文件。
安装程序基于 NSIS(另请参见 Release.htm)并支持一些标准 NSIS 选项:/NCRC 禁用 CRC 检查,/S 静默运行安装程序或卸载程序,/D 设置默认安装目录(它必须是命令行中使用的最后一个参数,并且不能包含任何引号,即使路径包含空格。仅支持绝对路径。
按照这个文档,我把它放在我的Dockerfile:
FROM jenkins/agent:jdk8-nanoserver-1809
WORKDIR /tmp
ADD https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs952/gs952w64.exe .
RUN C:\tmp\gs952w64.exe /S
这是docker build的输出:
Sending build context to Docker daemon 5.632kB
Step 1/4 : FROM jenkins/agent:jdk8-nanoserver-1809
---> 026ce64bdabf
Step 2/4 : WORKDIR /tmp
---> Using cache
---> fd854f6da0a9
Step 3/4 : ADD https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs952/gs952w64.exe .
Downloading [==================================================>] 27.64MB/27.64MB
---> Using cache
---> 259453368869
Step 4/4 : RUN C:\tmp\gs952w64.exe /S
---> Running in c86c8393a4fa
The command 'pwsh.exe -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; C:\tmp\gs952w64.exe /S' returned a non-zero code: 1
这意味着没有安装 Ghostscript。
这是因为我没有指定安装目录吗?我对默认目录没问题。
或者我应该完全放弃手动安装并使用某种包管理器吗?不知道现在windows是怎么做到的,上次用windows还是要安装小号Winsock才能上网……
【问题讨论】:
-
如果没有看到安装程序的任何反馈,这很难说;我的怀疑是执行安装程序的“用户”没有创建所需目录或类似内容的权限,但我对 docker 或 Jenkins 一无所知。您当然可以简单地将 Ghostscript 可执行文件和 DLL 放在一个方便的文件夹中,但这不会创建某些应用程序所依赖的注册表项。
标签: windows docker nsis ghostscript