dl-cdn.alpinelinux.org 国内访问过慢的解决方法

在Dockerfile的RUN语句后加入一行

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

例如

RUN set -ex && \
    chmod a+x /usr/bin/entrypoint.sh && \
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk add --no-cache \
        --virtual .build-deps \
        build-base \
        curl \
        openssl-dev \
        tar && \

编译Dockfile时提示:exec: “/usr/bin/entrypoint.sh”: permission denied: unknown 的解决方法

首先需要确定思路的是生成镜像时,程序发现 /usr/bin/entrypoint.sh 文件没有可执行权限,才会报这个错误。围绕这个问题,需要修改 Dockfile文件,简单举个例子:

RUN set -ex && \
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk add --no-cache \
        --virtual .build-deps \
        build-base \
        curl \
        openssl-dev \
        tar && \

语句应该加在RUN的后面,属于系统级别参数设置,修改如下:

RUN set -ex && \
    chmod a+x /usr/bin/entrypoint.sh && \
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk add --no-cache \
        --virtual .build-deps \
        build-base \
        curl \
        openssl-dev \
        tar && \

在龙蜥8.6上安装Confluence7.19.1

为什么用龙蜥?

最近的CentOS8结束生命周期闹得沸沸扬扬,经过对目前现有国产操作系统总结归纳,龙蜥可做到CentOS8一键升级到龙蜥,且应用稳定性可以保障。但你要说他是挂皮的CentOS,也不尽然,我比较看重它重构CentOS后新增加的一些功能,龙蜥8.6是双内核,RHCK(RHEL Compatible Kernel)和ANCK(OpenAnolis Cloud Kernel),其中ANCK内核有阿里团队重点打造,且经过了阿里各种重大市场活动的检验,最主要的是Cgroup功能,可以防止有BUG的应用不断蚕食系统资源,导致系统崩溃的情况发生。

安装Confluence数据库需关注的重点

安装MySQL或MariaDB数据库不是本篇重点,但这里面务必需要按照Confluence官方文档来设置,这样才能减少踩坑的几率。

具体参照如下文档
https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html

BIN包安装Confluence7.19.1

说几个重点需要关注的地方
1、采用atlassian-agent方式,把启动写入setenv.sh最为稳妥
2、如果不是一次安装成功的,一定要注意,每次安装BIN包都会新建立一个confluence账户,比如第一次建立一个confluence,第二次就是confluence1,第三次就是confluence2,以此类推,然后我这次碰到的一个诡异的问题就是使用startup.sh启动一切正常,使用start-confluence.sh启动就会报权限错误,根据观察使用startup.sh启动使用root权限,使用start-confluence.sh启动使用的是最后一次安装成功的confluence【1-*】用户权限,但是如果你想系统开机启动confluence,那使用的必然是start-confluence.sh文件,目前可以通过修改user.sh中的启动用户来解决这个问题,但这不是官方解决方式,所以这个东西务必还是一次安装好。
3、新系统不要升级安装,建议新安装一套,然后使用旧系统的备份数据还原即可。

结尾放张图,上线测试中。。。

从Confluence 7.9.0 以下版本升级到 7.11.0 的方法

最近一边做测试,一边把步骤写在了QQ群里,今天有空总结一下:

首先,从confluence 7.9.0 以下版本无法直接升级到 7.11.0,这是因为7.11.0 引进了一个新的RMI端口 8000 (当然因为是跨版本升级,是否7.10版本就引进了,这里不做描述,因为也没有测试过)

其次,从升级程序测试来看,对跨版本升级也不友好,感觉没有经过严谨测试,就把程序放上来了(疫情以后的这几版程序都有这个问题)

所以我们还是新安装一个环境,然后将老环境下的数据迁移到新环境即可。

安装过程如下,使用虚拟机会比较友好

1、虚拟出一台和线上系统一模一样的confluence 7.9.0,IP不同,可访问即可。这样老业务也不用停止。先删除老的7.9.0,再安装新的7.11.0


chmod +x /opt/atlassian/confluence/uninstall
/opt/atlassian/confluence/uninstall
chmod +x atlassian-confluence-7.11.0-x64.bin.bin
./atlassian-confluence-7.11.0-x64.bin

注意安装完成后系统提示是否启动,选择No

2、替换K文件和增加 mysql driver


cd /opt/atlassian/confluence/confluence/WEB-INF/lib
mv atlassian-extras-decoder-v2-3.4.1.jar atlassian-extras-decoder-v2-3.4.1.jar.bak

同时需要上传mysql-connector-java-8.0.22.jar驱动到/opt/atlassian/confluence/confluence/WEB-INF/lib目录下

3、启动新安装的confluence 7.11.0


/opt/atlassian/confluence/bin/startup.sh

4、访问 http://IP:8090 进行安装

这里会报错

解决需要在数据库里增加一个语句


mysql -p
> set global log_bin_trust_function_creators = 1;

然后继续安装

去旧的confluence 7.9.0 里把数据备份出来

完成后进入找到授权码,证明K文件依旧正常有效(K文件仅限研究,拒绝商用)

关于7.11.0的插件

照例无法打开应用市场,可以把插件下载下来使用,用下面这个插件做测试

插件部分到此结束,继续 One file all done。

浪潮NF5270M3型号服务器安装CentOS8.3

由于CentOS8.3删除了一些RAID卡驱动,导致安装的时候找不到硬盘,下面就来详细讲解一下如何安装CentOS8.3

一、查找浪潮服务器的RAID卡信息

https://www.inspur.com/eportal/ui?pageId=2317460&type=0
可以通过序列号查找
NF5270M3的RAID卡型号是SAS2018

二、查找CentOS8.3 移除的硬件信息
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/hardware-enablement_considerations-in-adopting-rhel-8#removed-adapters_hardware-enablement

可以看到SAS2108驱动已经被移除

三、下载被移除的驱动(ISO格式)
https://elrepo.org/linux/dud/el8/x86_64/

其中文件最后的0,1,2,3代表的是CentOS8的版本号,比如我们安装CentOS8.3,那么就应该下载对应的dd-megaraid_sas-07.714.04.00-1.el8_3.elrepo.iso文件。

四、安装CentOS8.3
正常使用安装盘引导到安装引导界面,按“TAB”键进入编辑,在quiet 后面增加liunx dd,然后弹出系统安装盘,挂入驱动盘后回车,待出现以下提示:
to select, ‘r’-refresh, or ‘c’-continue:
按r,然后选择1,会出现需要安装的驱动文件,然后再选择1确定,这时选择的驱动文件前面会显示[x]表示被选中,提示
to toggle selection, or ‘c’-continue: (输入c,回车)
驱动安装完成后,提示
to select, ‘r’-refresh, or ‘c’-continue:
这个时候需要弹出驱动盘,然后挂载系统安装盘,按c,就会进入安装程序,就可以正常安装CentOS8.3了。

关于CentOS 8.2.2004 Docker环境下应用sameersbn/bind镜像的若干需要问题

背景:
前期用pyhon写的一个软件来做dns域名劫持,dig响应正常,解析正常,但同事监控机经常报警,dns响应时间占比在四分之三,经过一番折腾,还是这个软件的事情,所以单独给同事搭建了一台dns私网服务器,为了便捷快速搭建完成,选择了sameersbn/bind镜像。
服务器:CentOS 8.2.2004
Docker引擎版本:19.03.12(使用非root用户运行)

搭建过程:


docker pull sameersbn/bind

启动过程


docker run --name='bind' -d -p 53:53/udp -e WEBMIN_ENABLED=false -v /named:/data sameersbn/bind:latest

我不用WEB来配置bind,所以就把WEB服务关了,/named目录(也可为其它目录)为数据目录,新建容器后将在该目录下生成bind/ect和bind/lib目录,其中etc目录下为DNS的相关配置文件。配置和配置其他bind服务器一致,就不在这里表述了。下面主要说说碰到的问题。

碰到的问题(很重要,说的人很少,但是能节省你的大部分时间,因为我已经以身试法了)
1、需要提前在主机上建立工作目录 /named
2、不需要关闭主机防火墙,docker启动镜像的时候会自动开通防火墙访问规则
3、报chcon: can’t apply partial context to unlabeled file 错误是因为我们关闭了selinux,需要恢复原状,即修改/etc/selinux/config文件,修改为SELINUX=enforcing,修改后必须重启服务器
4、很多人没说过的docker加载目录权限问题,我们第一次使用


docker ps -a

发现容器竟然自动退出了,然后我们要知道发生了什么,使用


docker logs bind

报错如下
mkdir: cannot create directory ‘/named/bind’: Permission denied
找了很多教程,没有人说过原因,在github上找到了问题的原因
https://github.com/sameersbn/docker-bind/issues/15
在执行docker run命令之前,需要做如下操作


chcon -Rt svirt_sandbox_file_t /named

执行后就可以正常启动容器了。