[英]Installing yarn on docker file: gpg: [don't know]: partial length invalid for packet type 63
我在安装 Yarn 时遇到了更多麻烦。 在 Docker 文件上安装 yarn global
在我的最后一个问题中,我找到了在首次构建图像但运行失败后要运行的步骤。
Dockerfile
FROM ruby:2.7.2
SHELL ["/bin/bash", "-c"]
RUN apt-get update -qq && \
apt-get install -y nodejs libvips-tools libsodium-dev
# We need Chromedriver.
# RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
# echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list && \
# apt-get install -y google-chrome-stable && \
# CHROMEVER=$(google-chrome --product-version | grep -o "[^\.]*\.[^\.]*\.[^\.]*") && \
# DRIVERVER=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROMEVER") && \
# wget -q --continue -P /chromedriver "http://chromedriver.storage.googleapis.com/$DRIVERVER/chromedriver_linux64.zip" && \
# unzip /chromedriver/chromedriver* -d /chromedriver
# Install all gems first.
# This hits the warm cache if unchanged so bundling is faster.
COPY Gemfile* /tmp/
WORKDIR /tmp
RUN bundle install
WORKDIR /sapco
COPY . /sapco
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - # This line fails
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update && apt-get install -y yarn
RUN yarn global add mjml
错误 output 是:
------
#13 0.362 Warning: apt-key output should not be parsed (stdout is not a terminal)
#13 0.377 gpg: [don't know]: partial length invalid for packet type 63
#13 0.377 gpg: read_block: read error: Invalid packet
#13 0.377 gpg: import from '-' failed: Invalid keyring
------
我能够运行,所以我认为这与 gpg 无法正常工作没有太大关系。
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add ```
对于未来的访问者,如果您的问题类似于Python Steve的评论所描述的问题,您可以通过将您的密钥文件转换为 ASCII 文本编码来修复它。
使用file
命令检查:
> file gpg_key.asc
gpg_key.asc: Little-endian UTF-16 Unicode text, with CRLF line terminators
使用以下命令更正它:
> iconv -f UTF-16 -t US-ASCII gpg_key.asc -o gpg_key_output.asc
注意:不知何故, -o
选项可能不可用。 因此,您可以将上述命令中的-o
替换为>
符号,表示您要将 output 保存在上述文件中。
如果您重试file
命令:
> file gpg_key_output.asc
gpg_key_output.asc: ASCII text, with CRLF line terminators
现在,您可以导入密钥。
我从另一个答案中借用了这个答案。 您可以在此处更详细地查看源答案。
就我而言,这发生在我身上,因为我将我的 gpg 密钥附加到 KeePass 软件中的.kdbx
密钥条目。 而且,当我尝试通过从.kdbx
存储中检索它们来重用我的密钥时,我遇到了这个问题。 这是确切的错误:
gpg: [don't know]: partial length invalid for packet type 63
gpg: read_block: read error: Invalid packet
gpg: import from 'gpg_key.asc' failed: Invalid keyring
gpg: Total number processed: 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.