首页 > 系统相关 >使用Docker打造Linux老系统的编译工具链

使用Docker打造Linux老系统的编译工具链

时间:2024-12-04 15:32:45浏览次数:7  
标签:http Linux xenial 编译 aliyun ubuntu Docker com deb

由于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

标签:http,Linux,xenial,编译,aliyun,ubuntu,Docker,com,deb
From: https://www.cnblogs.com/eaglexmw/p/18586421

相关文章

  • linux中openssl库的安装方法
    ImportError:urllib3v2onlysupportsOpenSSL1.1.1+,currentlythe'ssl'moduleiscompiledwith'OpenSSL1.0.2k-fips26Jan2017'.See:https://github.com/urllib3/urllib3/issues/2168报错解释:这个错误表明你正在使用的urllib3版本仅支持OpenSSL的1.1.1版本或......
  • 使用GraalVM将SpringBoot工程编译成平台原生的可执行文件
    原文链接https://blog.liuzijian.com/post/209e68d0-a418-1737-503a-d47e6d2d9350.html   1.GraalVMGraalVM (https://www.graalvm.org/)是一个高性能的JDK,旨在加速用Java和其他JVM语言编写的应用程序的执行,同时还提供JavaScript,python和许多其他流行语言的运行时。Gr......
  • docker 总结
    Docker:是一个发布应用程序的技术Docker的核心镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。镜像就是磁盘上的文件包含完整运行环境,可以在任意Linux操作系统上运行参考:Docker镜像操作-一杯水M-博客园Dockerfile:将jar文件构......
  • linux模拟试题
    Linux基础阶段考试笔试模拟试卷审核人:王旺旺一.填空题(每题1分,共30分)1.验证httpd服务是否启动的命令是_______答:systemctlstatushttpd或netstat-anptl或ss-anpt2.将目录xxhf下所有文件的所属组改为user1的命令是_______答:chown-R,user1xxhf3.取......
  • Docker安装与使用全指南
    标题:Docker安装与使用全指南Docker是一种流行的容器化工具,用于简化应用程序的构建、部署和运行。它通过轻量级容器提供跨平台环境的一致性,成为现代开发和运维的核心工具之一。本文将详细介绍如何在不同操作系统上安装Docker,并完成基础配置和验证。一、什么是Docker?Doc......
  • 【AIX】AIX7.1 C编译环境部署指导说明
    一、aix7.1镜像安装安装步骤请参考另外一篇博客:【AIX】AIX系统安装教程及相关命令Aix相关命令,参考附录一二、基本软/硬件信息本次安装信息如下:图一:图二:图三:图中字段解释,可以查看附录二三、部署编译环境1、Telnet远程连接推荐使用终端连接工具:MobaXterm注:等待一......
  • 腾讯通RTX低成本升级方案,支持Linux内核系统及移动端
    一、腾讯通RTX继续使用的难题自腾讯通RTX停止更新并下架官网以来,用户无法再获取技术支持和资源下载。同时,产品在实际使用中还面临以下突出问题:●不兼容国产系统及移动端:腾讯通RTX仅支持Windows和Mac系统,不支持统信UOS、银河麒麟等Linux内核国产操作系统,以及移动端设备(Android和......
  • linux中安装多个python版本环境
    一、更新系统软件包yumupdate-y 二、安装软件管理包和可能使用的依赖yum-ygroupinstall"Developmenttools"yuminstallopenssl-develbzip2-develexpat-develgdbm-develreadline-develsqlite-devel 三、下载Pyhton3到/usr/local目录https://www.python......
  • docker安装SqlServer2019
    使用dockercompose部署资源清单文件services:sqlserver-2019:restart:alwayscontainer_name:sqlserverimage:mcr.microsoft.com/mssql/server:2019-latestuser:root#端口映射ports:-1433:1433volumes:-./mssql:/var......
  • QEMU中虚拟Linux网络配置
    QEMU中虚拟Linux网络配置baidu:只有在ping的时候才想起我,对吗初刚才使用qemu测试驱动的时候,忽然发现ssh不能顺利的接入到虚拟操作系统之中,原以为是物理机资源紧张导致qemu启动变慢,结果摸鱼半天之后依然无法通过ssh访问。使用vnc接入后发现虚拟机无法上网,没有被分配IP地址。不......