由于GLIBC及C++运行时库的问题,在新的Ubuntu下编译的软件,拿到老系统上,是往往会运行出错的,而老系统编译出来的软件,则通常能够被新系统兼容

因此准备弄一个老系统下的容器,专门用来编译一些软件,这里ubuntu使用16.04版本。

参考自网络上搜索得到的信息,
准备三个文件,分别是Dockerfile/run.sh/sources.list

其中sources.list是方便国内快速拉取得相应的软件包,内容如下:

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

而run.sh只用来启动ssh服务器,方便容器运行时远程登陆进去操作,内容如下:

#!/bin/bash
if [[ ! -e /data ]]; then
mkdir /data
fi
/usr/sbin/sshd -D

Dockerfile内容如下:

# 以最新的Ubuntu镜像为模板
FROM ubuntu:16.04
# 将本目录下的sources.list作为容器的一个文件
ADD sources.list /root/sources.list
# 使用阿里Ubuntu源,更新快
RUN mv /etc/apt/sources.list /etc/apt/sources.list_bak
RUN cp /root/sources.list /etc/apt/sources.list
RUN apt-get update
# 安装ssh
RUN apt-get install -y openssh-server
# 安装编译器等相关套件
RUN apt-get install -y build-essential libgmp-dev libmpfr-dev libmpc-dev gawk flex bison pkg-config g++ autoconf automake
# 创建目录
RUN mkdir -p /var/run/sshd
# 创建/data目录
RUN mkdir -p /data
# 修改root密码,便于远程登录
RUN echo root:Test1234 | chpasswd
# 配置ssh可以使用root登陆
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 复制配置文件到相应位置,并赋予脚本可执行权限
ADD run.sh /run.sh
RUN chmod 755 /run.sh
# 开放22端口
EXPOSE 22
#设置自启动命令
CMD ["/run.sh"]

使用命令构造镜像,如下(由于机器的原因,构造镜像及运行容器时,域名解析会出错,这里直接add-host一下):

docker build \
--add-host archive.ubuntu.com:185.125.190.81 \
--add-host mirrors.aliyun.com:101.226.27.113 \
--add-host archive.canonical.com:185.125.188.87 \
-t base_env:16.04 .

运行容器如下(将home目录及data目录映射进容器,同时容器外的12306端口映射进容器的22端口):

docker run -d \
--add-host archive.ubuntu.com:185.125.190.81 \
--add-host mirrors.aliyun.com:101.226.27.113 \
--add-host archive.canonical.com:185.125.188.87 \
-v /home:/home:rw \
-v /data:/data:rw \
-p 12306:22 \
--name=bld_env_16.04 \
base_env:16.04
posted @ 2024-12-04 15:27 日月王 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 参考的链接: https://www.cnblogs.com/chen2ha/p/17180287.html 文章很长,一些关键点在: 1. 取得docker Docker可以通过Linux发布版中取得,也可以从docker网站上下载编译好的程序。 下载链接: https://download.do 阅读全文
posted @ 2024-09-26 09:18 日月王 阅读(1134) 评论(0) 推荐(1) 编辑
摘要: 比特米盒的armbian系统适配与调整 1.环境 闲鱼上淘了一个矿渣盒子,名称很多,私家云二代、比特米盒、cumebox2,其实就是同一个产品,配置如下: 处理器是晶晨S905X,内存1G,WIFI,2个USB2.0,1个typeC口,百兆网卡,SD卡,HDMI接口,有两个2.5寸的硬盘位。 网卡和 阅读全文
posted @ 2024-06-05 10:54 日月王 阅读(2937) 评论(0) 推荐(0) 编辑
摘要: 最近的工作基本上在Linux上做。 但是,也有一个小工具需要同时支持Windows/Linux,工具依赖于Qt,从官方下载的版本上有qt5.6.3/5.12.12,这两个版本都有MSVC2015。 因此搞了一个Win7的虚拟机,VS2015实在太大了,从VS2019的社区版看到可以定制仅安装C++工 阅读全文
posted @ 2024-04-17 11:38 日月王 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 由于公司用的xilinx产品,大都是老版本,因此在转linux时,为减少切换麻烦,petalinux也是用的2018.3 编译kernel/u-boot/root-fs一切正常,但在编译SDK时,报失败。 失败信息如下: NOTE: Executing RunQueue Tasks ERROR: n 阅读全文
posted @ 2023-03-03 09:00 日月王 阅读(1257) 评论(0) 推荐(1) 编辑
摘要: 个人电子邮箱服务器的搭建:Postfix+Dovecot+Sqlite+PostfixAdmin+RoundCube 一、前言 个人网站上的Http服务已经搭建了不少,准备在其上整一个高大上的:电子邮箱服务(俗称伊妹儿)。 整个服务还是基于arm的盒子之上。 Host环境:Ubuntu 18.04. 阅读全文
posted @ 2022-08-30 16:50 日月王 阅读(2165) 评论(0) 推荐(0) 编辑
摘要: Html网页中驱动React组件 本文是《Html网页中驱动Vue组件》的姊妹篇。 通常React组件的使用办法,是通过create-react-app创建一个应用骨架,然后import相应组件,在应用中调用ReactDOM.createRoot创建根结点,然后初始化整个页面、应用。 这样得到的应用 阅读全文
posted @ 2022-08-10 18:08 日月王 阅读(286) 评论(0) 推荐(0) 编辑
摘要: Rttys及Rtty的交叉编译 Rttys官方的Release仅提供amd64与arm64的版本,并没有armhf的版本,且并不支持将rttys部署到子目录下。 因此需要手工交叉编译一个Rttys。 1.Rttys Host环境:Ubuntu 18.04.5 (PC) 编译工具链:arm-himix 阅读全文
posted @ 2022-08-10 18:08 日月王 阅读(1418) 评论(0) 推荐(0) 编辑
摘要: Html网页中驱动Vue组件 通常Vue组件的使用办法,是通过vue-cli创建一个应用骨架,然后import相应组件,在应用中调用createApp创建app根结点,然后初始化整个页面、应用。 这样得到的应用,是需要进行编译、打包转换后的js/css等文件。 我希望是在手工弄一个原始纯净的HTML 阅读全文
posted @ 2022-08-10 18:07 日月王 阅读(629) 评论(0) 推荐(0) 编辑
摘要: VUE3.0的打包配置修改 最近在玩在线工具这一块,网上有一个开源应用:PPTist,能够还原大部分PPT功能,实现了PPT的在线编辑、演示。 从Git拉下来的代码,使用npm编译后,js文件名字,后面都带一堆hash,且JS的内部全部经过混淆了,变量、函数名称变成abcd之类,很不爽,也不好调试、 阅读全文
posted @ 2022-07-05 16:31 日月王 阅读(2725) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示