惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
爱范儿
爱范儿
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
GbyAI
GbyAI
H
Help Net Security
A
About on SuperTechFans
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
D
Docker
博客园 - Franky
有赞技术团队
有赞技术团队
G
Google Developers Blog

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间
在容器中搭建自己的编译环境 | 泠泫凝的异次元空间
Lxn's Area · 2023-04-23 · via 泠泫凝的异次元空间

在编译时经常会发生依赖关系难以处理的问题,此时在容器中去编译就能一部分解决这种问题,本文将在Docker中搭建一个基本的容器用于编译。

安装Docker

请参看本站文章Docker 手记(持续更新)

创建容器

创建镜像

  1. 创建一个文件夹用于存放dockerfile和其他的脚本文件。
  2. 创建一个文件dockerfile
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31

    FROM ubuntu:18.04


    ARG DEBIAN_FRONTEND=noninteractive
    ENV TZ=Asia/Shanghai


    ADD sources.list /root/sources.list
    RUN mv /etc/apt/sources.list /etc/apt/sources.list_bak
    RUN cp /root/sources.list /etc/apt/sources.list


    RUN apt update && apt install -y nano wget curl openssh-server git
    RUN mkdir -p /var/run/sshd

    RUN echo root:mypassword | chpasswd



    RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

    RUN curl -sLk https://raw.githubusercontent.com/nodesource/distributions/master/deb/setup_16.x | bash -
    RUN apt update && apt install -y nodejs

    ADD run.sh /run.sh
    RUN chmod 755 /run.sh


    EXPOSE 22 80 443
    CMD ["/run.sh"]
  3. 创建换源文件,在Ubuntu 软件仓库镜像使用帮助中选择自己的版本,然后把里面文本框的内容直接输入到sources.list文件中,然后把这个文件和上面的dockerfile放在同一个文件夹里面即可。
  4. 创建入口脚本:
    1
    2
    #!/bin/bash
    /usr/sbin/sshd -D
    将该文件保存为run.sh然后和上面的dockerfile保存到同一个文件夹即可。
  5. dockerfilebuild镜像:
    1
    docker build -t myenv:1.0 .
    其中myenv:1.0分别为镜像名和tag,可根据自身需求进行更改。

启动容器

使用如下命令启动容器:

1
2
3
4
5
docker run -d \
-v /root/userdata0/compile-env-0422/files:/umc:rw \
-p 17222:22 \
--name=compile-env-0422 \
myenv:1.0

启动后使用ssh连接对应的端口即可。

参考dockerfile

ubuntu 18.04

见上方。

CentOS 7.9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

FROM centos:centos7.9.2009


ENV TZ=Asia/Shanghai


RUN yum update -y && yum install -y openssh-server git curl wget
RUN mkdir -p /var/run/sshd

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''

RUN echo root:mypassword | chpasswd

RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config



ADD run.sh /run.sh
RUN chmod 755 /run.sh


EXPOSE 22 80 443
CMD ["/run.sh"]

 上一篇

Linux Network Security