Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

在编译时经常会发生依赖关系难以处理的问题,此时在容器中去编译就能一部分解决这种问题,本文将在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

    # 解决build过程中卡在选择区域
    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
    # 修改root密码并允许root从ssh使用密码登录
    RUN echo root:mypassword | chpasswd
    # 修改配置文件使得root能够从ssh登录
    # 如果是ubuntu 20.04及以上版本请使用下面被注释的这行
    # RUN sed -i 's/^#PermitRootLogin prohibit-password$/PermitRootLogin yes/g' /etc/ssh/sshd_config
    RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    # 安装nodejs 16.x
    RUN curl -sLk https://raw.githubusercontent.com/nodesource/distributions/master/deb/setup_16.x | bash -
    RUN apt update && apt install -y nodejs
    # 启动sshd并保持运行
    ADD run.sh /run.sh
    RUN chmod 755 /run.sh

    # 将22端口暴露出去,如果有其他需要还可以添加更多的端口
    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
# 创建sshKey,防止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 ''
# 修改root密码并允许root从ssh使用密码登录
RUN echo root:mypassword | chpasswd
# 修改配置文件使得root能够从ssh登录
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 80 443
CMD ["/run.sh"]

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

萌ICP备 20219421 号

中国互联网违法和不良信息举报中心

架构版本号:8.1.6 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

Copyright 2024 LingXuanNing, All rights reserved.