mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
* 添加了GCC_cross_compile——tool_chain * - 解决环境变量路径拼接时,多了`/`的问题 - apt安装时增加-y,不需用户确认 * 解决添加环境变量的命令有误的问题 * 修正编译错误时,还会执行下一步的问题 * new: 编译完成后清理临时文件 * 更新makefile * 调整:把grub安装在 $HOME/opt/dragonos-grub下 * new: 新增dockerfile * 将镜像源换成中科大的(原因是清华的总是ban掉用于构建镜像的服务器的ip) * 修改为基于debian bullseye构建 * 取消指定版本 * 修复MBR磁盘镜像未设置启动标志的bug * 取消在docker中安装grub * 安装grub的过程改到客户机上进行 * bootstrap.sh 添加--no-docker * 使用新版的docker编译镜像 * 修补, 添加了一些关于gcc的check Co-authored-by: longjin <longjin@RinGoTek.cn>
54 lines
1.7 KiB
Docker
54 lines
1.7 KiB
Docker
FROM debian:bullseye
|
|
|
|
# 设置工作目录
|
|
WORKDIR /build-image
|
|
|
|
# 将本地的脚本复制到工作目录
|
|
COPY *.sh ./
|
|
|
|
# 设置用来存放rust缓存的卷
|
|
VOLUME [ "/root/.cargo/registry" ]
|
|
|
|
# 设置rust源的环境变量
|
|
ENV RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
|
|
ENV RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
|
|
|
|
RUN sed -i "s@http://\(deb\|security\).debian.org@http://mirrors.ustc.edu.cn@g" /etc/apt/sources.list && apt update && apt install -y \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg \
|
|
lsb-release \
|
|
llvm-dev libclang-dev clang gcc-multilib \
|
|
gcc build-essential fdisk dosfstools qemu-kvm \
|
|
sudo wget
|
|
|
|
# 安装Rust
|
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly -y && \
|
|
# You have to add the rustup variables to the $PATH
|
|
echo "export PATH=\"\$HOME/.cargo/bin:\$PATH\"" >> ~/.bashrc && \
|
|
bash -c "source $HOME/.cargo/env && \
|
|
# 更换cargo的索引源
|
|
touch $HOME/.cargo/config && \
|
|
bash change_rust_src.sh && \
|
|
# 安装rust的编译工具
|
|
echo "正在安装DragonOS所需的rust组件...首次安装需要一些时间来更新索引,请耐心等待..." && \
|
|
cargo install cargo-binutils && \
|
|
rustup toolchain install nightly && \
|
|
rustup default nightly && \
|
|
rustup component add rust-src && \
|
|
rustup component add llvm-tools-preview && \
|
|
rustup target add x86_64-unknown-none"
|
|
|
|
# 编译安装GCC交叉编译工具链
|
|
RUN bash build_gcc_toolchain.sh -f
|
|
|
|
# 清除缓存
|
|
WORKDIR /
|
|
RUN apt-get autoremove -q -y && \
|
|
apt-get clean -q -y && \
|
|
rm -rf /build-image
|
|
|
|
ENV DragonOS_GCC=/root/opt/dragonos-gcc/gcc-x86_64-unknown-none/bin/
|
|
# 设置容器启动后执行的命令
|
|
CMD ["/bin/bash"]
|