(我在找到解决方案后添加这个问题,因为当我需要它时,没有匹配我的错误。)
将 Rust 应用程序打包为 docker 容器后,出现以下错误:
Hyper error: invalid certificate: UnknownIssuer
。
我使用了官方 rust docker 镜像中的示例(参见 https://hub.docker.com/_/rust/):
FROM rust:1.40 as builder
WORKDIR /usr/src/myapp
COPY . .
RUN cargo install --path .
FROM debian:buster-slim
RUN apt-get update && apt-get install
COPY --from=builder /usr/local/cargo/bin/myapp /usr/local/bin/myapp
CMD ["myapp"]
问题是 debian docker 镜像不包含
ca-certificate
包。使用以下方法解决了问题:
FROM rust:1.40 as builder
WORKDIR /usr/src/myapp
COPY . .
RUN cargo install --path .
FROM debian:buster-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates
COPY --from=builder /usr/local/cargo/bin/myapp /usr/local/bin/myapp
CMD ["myapp"]
我在 Node 环境中遇到此错误。
对我来说,答案是不要使用“苗条”版本:
# Change
FROM node:20-slim AS base
# To
FROM node:20 AS base