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= ...
随机推荐
- dom4j解析xml时报出文件提前结束
在写javaweb小项目的时候,用dom4j解析xml报出如下错误: org.dom4j.DocumentException:Error ....... Nested exception: ...
- 个性探测综述阅读笔记——Recent trends in deep learning based personality detection
目录 abstract 1. introduction 1.1 个性衡量方法 1.2 应用前景 1.3 伦理道德 2. Related works 3. Baseline methods 3.1 文本 ...
- 用前端姿势玩docker【五】快速构建中类Unix系统与Windows系统的差异化处理
目录 用前端姿势玩docker[一]Docker通俗理解常用功能汇总与操作埋坑 用前端姿势玩docker[二]dockerfile定制镜像初体验 用前端姿势玩docker[三]基于nvm的前端环境构建 ...
- 轻音少女K-on闹钟,时钟,日历,整点报时
在网上找了很久才找到这个东西, 所以分享出了,方便大家下载 链接: https://pan.baidu.com/s/11wB57F2Td1FPp9RBmTvg 密码: 2xt5
- 年近而立,Java何去何从?
摘要:各种新需求新应用层出不尽,各路新生代编程语言异军突起等等,Java未来会不会继续受欢迎?曾经备受关注的Java是否能紧跟时代步伐?新基建时代破茧重生引领云端未来潮流? 1995年第一个Java版 ...
- 【NOI2014】动物园 - KMP
题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天, ...
- 图论算法(三) 最短路SPFA算法
我可能要退役了…… 退役之前,写一篇和我一样悲惨的算法:SPFA 最短路算法(二)SPFA算法 Part 1:SPFA算法是什么 其实呢,SPFA算法只是在天朝大陆OIers的称呼,它的正统名字叫做: ...
- c++知识点 2006-10-14 12:59
这是自己开发一个简易的监控系统时的所用到的知识点. 第一个问题 在网络传输数据时可以传int,float,doule,char,等包括结构体类型但是除类类型外. 在调试中要常用merry寄存器. 应用 ...
- unity探索者之iOS微信登录、分享
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8405700.html iOS接入微信的SDK相对于安卓要麻烦一点,除了核心功能代码 ...
- python基础 Day11
python Day11 函数中默认参数的陷阱 只针对默认参数是可变的数据类型(如果你的默认参数指向的是可变的数据类型,那么你无论调用多少次默认参数,都是同一个) def test(name,list ...