# linux-dev **Repository Path**: koumei_lee/linux-dev ## Basic Information - **Project Name**: linux-dev - **Description**: No description available - **Primary Language**: Docker - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # linux-dev docker images ## Images ### Images list - linux-dev-base 基于官方 Ubuntu 镜像,添加开发通用工具的基础镜像。
包含: - 编译相关工具, gcc - ssh server - 网络相关工具 - 开发常用工具 - 常用开发标准库 - linux-dev-linux 在 base 镜像的基础上,包含编译、构建 linux 系统依赖工具。 - linux-dev-debian 基于官方 Debian 镜像,添加开发通用工具的基础镜像。
包含: - 常用工具:crul、vim、git、repo 等 - ssh server - 编译、构建 linux 系统依赖工具 - aarch64 gcc/g++ 工具链 > 如果需要依赖的库,可单独添加,如: > 添加 aarch64 的 openssl 库 > ```sh > sudo apt install libssl-dev libssl-dev:arm64 > ``` ### Image dependency​ 依赖base镜像,在 base 镜像的基础上增加库的安装增量的修改。 ```sh base └── linux: buildroot env └── jsapp: haasui/coral └── aosp ``` ## Build & Run - build Ubuntu: ```bash Usage: ./build_dockerfile.sh Available versions: 20, 22, 24 Available image types: base, linux ubuntu20.04: ./build_dockerfile.sh 20 base ./build_dockerfile.sh 20 linux ubuntu22.04: ./build_dockerfile.sh 22 base ./build_dockerfile.sh 22 linux ``` Debian: ```bash Usage: ./build_debian_dockerfile.sh Available versions : bullseye, bookworm Debian11 bullseye: ./build_debian_dockerfile.sh bullseye Debian12 bookworm: ./build_debian_dockerfile.sh bookworm ``` - run Ubuntu: ```bash Ubuntu20.04: docker run -u autoark --hostname ubuntu20-dev -it --rm linux-dev-base:20.04 Ubuntu22.04: docker run -u autoark --hostname ubuntu22-dev -it --rm linux-dev-base:22.04 ``` Debian: ```bash Debian11 bullseye: docker run -u autoark --hostname autoark-dev -it --rm linux-dev-debian:bullseye Debian12 bookworm: docker run -u autoark --hostname autoark-dev -it --rm linux-dev-debian:bookworm ``` ## Build yoc - Download toolchian 从玄铁官网下载工具链,[剑池开发工具集 - 编译工具 - GCC工具链-900系列](https://www.xrvm.cn/community/download?id=4460156621967921152),如下载 V3.2.0 版本的工具,压缩文件为 Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0-20250627.tar.gz,将此下载文件放到 attachments 目录下。 - 修改 Dockerfile 修改 ARG TOOLCHAIN_VERSION,如上工具链,设置如下 ```yaml ARG TOOLCHAIN_VERSION=Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0 ``` > 不用设置日期信息 - 构建、启动镜像 ```sh ./build_dockerfile.sh [20/22/24] yoc docker-compose -f docker-compose-ubuntu20-yoc.yml up -d ``` - 进入镜像 通过 ssh 连接进入镜像。 ```sh ssh autoark@TARGET_PC_IP -p 6000 ``` ## Docker-compose 1. 修改挂载目录 把代码目录挂载在镜像中的指定目录,如 ```yaml ## 把 ~/workroom 目录挂载在容器内 /home/autoark/workroom volumes: - ~/workroom:/home/autoark/workroom ``` 2. 修改挂载设备 将指定设备挂载到容器内,如串口设备 ```yaml devices: - "/dev/ttyUSB0:/dev/ttyUSB0" # 挂载主机串口设备到容器 ``` 3. 启动指定镜像 可以指定启动镜像,docker-compose 中使用 ${IMAGE_NAME} 定义镜像名。 有两种方法指定镜像名: 1. 修改 `.env` 文件中的定义 2. 在命令行中指定镜像名。 ​优先级​:命令行变量 > .env文件 > YAML 默认值 ```sh 启动镜像: IMAGE_NAME=linux-dev-debian:bullseye docker-compose up -d 停止镜像: docker-compose down ``` ## 镜像的使用 ### 连接镜像方式 1. 使用 ssh 连接镜像(推荐) ```sh ssh -p 6000 autoark@localhost ## 或使用PC的IP地址 ``` ssh 登录账户和密码: ```sh user : autoark password: 123456 ``` > 密码可以在 Dockerfile 中修改:
> `useradd -U -m -u $UID -G sudo -s /bin/bash -p "$(openssl passwd -1 123456)" $DOCKER_USER` 2. 直接使用 docker 命令进入 ```sh # 不指定 user docker exec -it autoark_dev /bin/bash # 指定 user docker exec -it -u autoark autoark_dev /bin/bash ``` ### 镜像内 apt 使用与依赖包安装 由于系统内有多架构,直接使用 `apt list` 显示会非常慢。
apt list 的时候指定架构会加速显示。 ```sh ## apt 更新源 sudo apt update ## apt list sudo apt -o APT::Architectures=amd64 list # 显示 amd64 架构包 sudo apt -o APT::Architectures=arm64 list # 显示 arm64 架构包 ## 安装包 sudo apt install package-name # 安装 amd64 架构包 sudo apt install package-name:arm64 # 安装 arm64 架构包 ``` > 使用系统 alias 的 aptamd64 和 aptarm64 命令,可以快速切换架构。 > ```sh > aptamd64 list # 显示 amd64 架构包 > aptarm64 list # 显示 arm64 架构包 > ```