docker 容器中部署 Go 服务时,请求 https 文件时抛错
错误提示:
Get https://res.ddkt365.com/ddktRes/imageRes/wx_headimg/0f1d9e55913c22bcaf7cca9b38048d29.jpeg: x509: certificate signed by unknown authority -> http.Get
panic: runtime error: invalid memory address or nil pointer dereference
是 CA 证书的问题,解决方案就是 拷贝 alpine 镜像中的证书
附上 dockerfile 代码
# 基础镜像是 docker 仓库的 busybox
FROM alpine as certs
RUN apk update && apk add ca-certificates
# 从别的镜像中 copy 证书
FROM busybox
COPY --from=certs /etc/ssl/certs /etc/ssl/certs
# 作者签名
LABEL author="szliugx@gmail.com"
# 工作目录
WORKDIR /root # 添加文件
ADD ./bin/ddkt-poster-go ./ddkt-poster-go
ADD ./bin/conf.toml ./conf.toml
ADD ./fonts ./fonts
# 暴露出端口号
#EXPOSE 8080
# 运行容器执行时的口令
ENTRYPOINT ["./ddkt-poster-go", "-conf", "conf.toml"]
liugx@MacBook-Pro ~/work/personal/golang/ddkt-poster liugx_code_youhua ● docker build -t ddkt-poster-go .
Sending build context to Docker daemon .08MB
Step / : FROM alpine as certs
latest: Pulling from library/alpine
aad63a933944: Pull complete
Digest: sha256:b276d875eeed9c7d3f1cfa7edb06b22ed22b14219a7d67c52c56612330348239
Status: Downloaded newer image for alpine:latest
---> a187dde48cd2
Step / : RUN apk update && apk add ca-certificates
---> Running in 1a290f0b3176
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
v3.11.5--gfa48ebadee [http://dl-cdn.alpinelinux.org/alpine/v3.11/main]
v3.11.5--ge59ae1cbad [http://dl-cdn.alpinelinux.org/alpine/v3.11/community]
OK: distinct packages available
(/) Installing ca-certificates (-r1)
Executing busybox-1.31.-r9.trigger
Executing ca-certificates--r1.trigger
OK: MiB in packages
Removing intermediate container 1a290f0b3176
---> 409d89df1e27
Step / : FROM busybox
---> 83aa35aa1c79
Step / : COPY --from=certs /etc/ssl/certs /etc/ssl/certs
---> f3d288b6f60c
Step / : LABEL author="szliugx@gmail.com"
---> Running in 81fa23a198e9
Removing intermediate container 81fa23a198e9
---> 474ca6db3d19
Step / : WORKDIR /root
---> Running in 670487d3f2a5
Removing intermediate container 670487d3f2a5
---> ebbc723821b0
Step / : ADD ./bin/ddkt-poster-go ./ddkt-poster-go
---> 89d7a0e23eca
Step / : ADD ./bin/conf.toml ./conf.toml
---> 4ba50a3e49f8
Step / : ADD ./fonts ./fonts
---> 672cb62f608a
Step / : ENTRYPOINT ["./ddkt-poster-go", "-conf", "conf.toml"]
---> Running in 86afb270dab0
Removing intermediate container 86afb270dab0
---> da2ec7a93580
Successfully built da2ec7a93580
Successfully tagged ddkt-poster-go:latest
liugx@MacBook-Pro ~/work/personal/golang/ddkt-poster liugx_code_youhua ●
执行过程
引用链接:
docker 容器中部署 Go 服务时,请求 https 文件时抛错的更多相关文章
- .NET Core开发的iNeuOS工业互联平台,iNeuKernel物联网核心组件在Docker容器中部署。
目 录 1. 概述... 2 2. 演示信息... 2 3. 安装Docker容器... 2 4. 安装dotnet镜像... 3 5. ...
- 在CentOS下的docker容器中部署spring boot应用的两种方式
我们通常在 windows 环境下开发 Java,而通常是部署在Linux的服务器中,而CentOS通常是大多数企业的首选,基于Docker的虚拟化容器技术,多数Java应用选择这种方式部署服务.本文 ...
- network_node:host解决Docker容器化部署微服务出现的Dobbo通信问题
在Docker中,有时候出现 ports: - 20880:20880 Dobbo通信出现问题. 此时应该改成 network_node:host 注释 ports!
- Linux下将.Asp Core 部署到 Docker容器中
我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简 ...
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
- 一个docker容器中运行多个服务还是弄一堆docker容器运行?
不建议直接在单个 Docker 容器中运行多个程序. 以 2017年 10 月18 日 Docker 官方支持 Kubernetes 为分水岭计算,Kubernetes 赢得容器编排之战的最终胜利已经 ...
- Docker 案例: 在容器中部署静态网站
----------------知识点------------ 容器的端口映射: docker run [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...
- docker多个容器连接 将 Rails 程序部署到 Docker 容器中
在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中
- Docker 在容器中部署静态网站
Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...
随机推荐
- DIFF算法浅析(三)在react中的实现
在虚拟dom中diff的实现. 分别从4个方面: DIFF抽象概念(概述.时间复杂性分析) 在Vue2中的实现(版本2.6.11.必要性.执行方式) 在React中的实现(版本16.13.1,必要性. ...
- C#LeetCode刷题之#16-最接近的三数之和(3Sum Closest)
目录 问题 示例 分析 问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3620 访问. 给定一个包括 n 个整数的 ...
- C#LeetCode刷题-脑筋急转弯
脑筋急转弯篇 # 题名 刷题 通过率 难度 292 Nim游戏 62.5% 简单 319 灯泡开关 31.8% 中等 777 在LR字符串中交换相邻字符 21.9% 中等
- 国人开源了一款小而全的 Java 工具类库,厉害啊!!
最近栈长看到了一款小而全的 Java 工具类库:Hutool,Github 已经接近 14K Star 了,想必一定很优秀,现在推荐给大家,很多轮子不要再造了! Hutool 是什么 Hutool 是 ...
- 旧 WCF 项目迁移到 asp.net core + gRPC 的尝试
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能第一时间发现问题. 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行:一方面,AWS对Li ...
- Redis设计与实现——独立功能的实现
发布和订阅 频道的订阅和退订 struct redisServer{ //键是被订阅者频道 ,键是一个链表,记录所有订阅这个频道的客户端 dict *publish_channels } 订阅实现: ...
- 推荐一看的blog
不同专题: 个人blog cnblogs.com/MiLog cnblogs.com/Dway (指DeepWay) cnblogs.com/muly 建议一看,主要发布在cnblogs.com/dl ...
- 记录一下前端性能优化-为何操作DOM会变慢?
对于大多数前端来说,性能优化的方法可能包括以下这些: 减少HTTP请求(合并css.js,雪碧图/base64图片) 压缩(css.js.图片皆可压缩) 样式表放头部,脚本放底部 使用CDN(这部分, ...
- Java之reflection(反射机制)——通过反射操作泛型,注解
一.反射操作泛型(Generic) Java采用泛型擦除机制来引入泛型.Java中的泛型仅仅是给编译器Javac使用的,确保数据的安全性和免去强制类型转换的麻烦.但是编译一旦完成,所有和泛型有关的类型 ...
- 【测试技术分享】Liunx常用操作命令集合
Linux命令 ls 查看文件目录内容 ls -lha l:详细信息 h:人性化显示 a:查看隐藏目录 ls -目录名 查看指定目录 d rwx rwx rwx d:文件夹 -:文件 rwx:拥有 ...