首页 > 其他分享 >docker部署的坑--基于 alpine 制作docker镜像时

docker部署的坑--基于 alpine 制作docker镜像时

时间:2024-02-04 17:33:44浏览次数:31  
标签:https mirrors -- apk && docker alpine

基于 alpine 制作docker镜像时

大家经常爱用alpine镜像 

FROM openjdk:8-jdk-alpine
但这个镜像是一个精简版,里面缺不少东西,常见的问题如下:

1、alpine操作系统下的软件库(国外)经常崩
# 国外的软件库崩掉时会出现“ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.16/main: temporary error (try again later)”

# 我们需要使用国内的软件库镜像
# https://mirrors.ustc.edu.cn/alpine/
# 帮助手册 https://mirrors.ustc.edu.cn/help/alpine.html

2、字体,字符集,时区的问题
alpine过于精简,会出现一下问题:
1 中文乱码
2 系统时间混乱
3 由于不支持字体,导出excel等功能,输出结果是空白

这需要我们自己下载字体包,设置时区,规定字符集编码
3、网络问题
执行构建命令:
docker build -t alpinelinuxjre .

即使用的是国内软件库也会出现“ERROR: http://mirrors.ustc.edu.cn/alpine/v3.16/: temporary error (try again later)”

这是因为docker的网络问题,构建时要使用本地网络。
4、不能愉快的装oracle的jdk
alpine底层的c函数库是基于musl libc的,不支持glibc(当然你可以自己下载)。
而oracle的jdk依赖的是glibc。所以alpine不能愉快的装oracle的jdk。
所以我下面就选择了装OpenJdk(够用即可)。


最终解决的Dockerfile文件内容如下:

FROM openjdk:8-jdk-alpine
WORKDIR /mydir_U01

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN echo -e "https://mirrors.ustc.edu.cn/alpine/v3.16/main/" > /etc/apk/repositories \
&& apk update && apk upgrade && apk add ca-certificates && update-ca-certificates \
&& apk add --update tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/*

ENV TZ=Asia/Shanghai
ENV LANG=C.UTF-8 \
LANG=zh_CN.UTF-8 \
LANGUAGE=zh_CN.UTF-8

ENV JRE_HOME /mydir_U01/jdk8u345-b01-jre #【你自己的路径】
ENV PATH ${PATH}:${JRE_HOME}/bin

同时:给docker配置DNS解析服务器

配置文件的路径: /etc/docker/daemon.json,没有此配置文件的话就新建一个

{
    "registry-mirrors": [
        "https://***.mirror.aliyuncs.com",
        "https://reg-mirror.qiniu.com",
        "https://docker.mirrors.ustc.edu.cn/"
    ],
    "dns": [
        "8.8.8.8",
        "114.114.114.114"
    ],
    "insecure-registries": []
}

 

标签:https,mirrors,--,apk,&&,docker,alpine
From: https://www.cnblogs.com/schyzhkj/p/18006642

相关文章

  • 《程序是怎样跑起来的》第二章读后感
    第二章的题目是数据是用二进制表示的,我从第二章了解到了计算机的内部结构基于集成电路,这些元件的针脚只能有两种状态:0V和5V。由于这种二元特性,计算机采用二进制系统来处理和存储数据。在二进制中,8个二进制位组成一个字节,而字节是计算机信息处理的基本单位。二进制数与十进制数一......
  • 问题:“宋人尚意”,在书法中的表现有( )
    问题:“宋人尚意”,在书法中的表现有()A、苏黄米蔡B、苏门六君C、西昆体D、江西书派参考答案如图所示......
  • 问题:锥、护坡检测的关键项目有两个,分别是砂浆强度和混凝土强度。
    问题:锥、护坡检测的关键项目有两个,分别是砂浆强度和混凝土强度。此题为判断题(对,错)。参考答案如图所示......
  • [经验] 怎么分析这段感情的变化情况
    1、怎么分析这段感情的变化感情是人与人之间最为复杂而又最为重要的纽带之一。无论是亲情、友情还是爱情,都会经历许多的波折和变化。对于感情的变化,我们需要用理性的眼光去解析,找到原因,寻求解决之道。分析感情的变化要从根本原因入手。有些感情破裂的原因是表面的,比如互相之间的误......
  • [职场] 基金经理是做什么的?
    基金经理一般要求具有金融相关专业硕士以上教育背景,具备良好的数学基础和扎实的经济学理论功底,如有海外留学经历或获得CFA证书,则将更具竞争力。基金管理公司中,每种基金都是由一个经理或一组经理去负责决定该基金的组合和投资策略,投资组合是按照基金说明书的投资目标去选择,以及由该......
  • 问题:在“一带一路”建设中,要开展城市交流合作,欢迎沿线国家()之间互结友好城市。
    问题:在“一带一路”建设中,要开展城市交流合作,欢迎沿线国家()之间互结友好城市。A.相似城市B.重要城市C.重要县城D.各个城市参考答案如图所示......
  • 问题:?软件测试方法中,属于静态测试方法的是( )。?黑盒法?逻辑覆盖?错误推测?人工检测
    问题:?软件测试方法中,属于静态测试方法的是()。?黑盒法?逻辑覆盖?错误推测?人工检测参考答案如图所示......
  • 武汉外国语游记
    部分内容引用这篇游记,框内是引用内容,我不想打字内容较为随便或许是流水账仅为简单记录。day-?中考完了不用担心上学问题出去玩day1因为出去玩了没法和同学一起从南京到武汉晚到一会机房环境很好除了座位有点挤但是我刚坐高铁来头晕随便调了调电脑和ide没写代......
  • 设计模式--单例模式
    目录概念使用场景概念单例模式(SingletonPattern)是一种常见的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在C++中,单例模式通常用于管理全局资源或提供全局配置。使用场景以下是C++中实现单例模式的常见方法:饿汉式单例模式:饿汉式是一种实现单......
  • map
    `include<bits/stdc++.h>usingnamespacestd;intn;map<int,int>mp;intmain(){cin>>n;vectorv(n);for(inti=0;i<n;i++){cin>>v[i];mp[v[i]]++;}intcount=0;for(inti=0;i<n;i++){v[i]+=9;mp[v[i]]++;if(mp[v[i]]!=1)......