【DOCKER】基于UBUNTU的开发镜像

1. ubuntu_base

bash 复制代码
########################################################################################################################
# docker build --file ubuntu_base --build-arg UIMG=ubuntu:22.04 --build-arg LOGIN=u22 --tag u22:base .
# docker build --file ubuntu_base --build-arg UIMG=ubuntu:20.04 --build-arg LOGIN=u20 --tag u20:base .
# docker build --file ubuntu_base --build-arg UIMG=ubuntu:18.04 --build-arg LOGIN=u18 --tag u18:base .
# 可选参数
# --no-cache=true --progress=plain
#
# 创建容器并使用默认的root用户登录
# docker run -it --rm --privileged=true --name u20_base u20:base
# 创建容器并使用指定用户登录
# docker run -it --rm --privileged=true --name u20_base --user=u20 --workdir=/home/u20 u20:base
########################################################################################################################
ARG UIMG=
FROM ${UIMG}

ARG LOGIN=
RUN apt-get -y update && apt-get install -y ca-certificates &&\
  cp /etc/apt/sources.list /etc/apt/sources.list.bak &&\
  sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list &&\
  sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list &&\
  apt-get -y update && apt-get -y upgrade &&\
  apt-get install -y net-tools iproute2 iputils-ping &&\
  apt-get install -y wget axel curl &&\
  apt-get install -y zip unzip xz-utils rar unrar &&\
  apt-get install -y gawk sudo vim tree locales lsb-release &&\
  apt-get -y autoremove &&\
  echo 'root:root' | chpasswd root &&\
  useradd -m -s /bin/bash ${LOGIN} && adduser ${LOGIN} sudo && echo "${LOGIN}:${LOGIN}" | chpasswd

2. ubuntu_dev

bash 复制代码
########################################################################################################################
# docker build --file ubuntu_dev --build-arg UIMG=u22:base --tag u22:dev .
# docker build --file ubuntu_dev --build-arg UIMG=u20:base --tag u20:dev .
# docker build --file ubuntu_dev --build-arg UIMG=u18:base --tag u18:dev .
# 可选参数
# --no-cache=true --progress=plain
#
# 创建容器并使用默认的root用户登录
# docker run -it --rm --privileged=true u20:dev
#
# 创建容器并使用指定用户登录
# docker run -it --rm --privileged=true --user=u20 --workdir=/home/u20 u20:dev
#
# Windows
# docker run -id --privileged=true --user=u20 --workdir=/home/u20 --volume D:/dev:/home/u20/dev --name=u20_dev u20:dev
#
# Linux
# docker run -id --privileged=true --user=u20 --workdir=/home/u20 --volume ${HOME}/dev:/home/u20/dev --name=u20_dev u20:dev
########################################################################################################################
ARG UIMG=
FROM ${UIMG}

RUN apt-get -y update &&\
  /bin/bash -c echo -e "\n6\n70\n" | apt-get -y install cmake &&\
  apt-get install -y build-essential gdb git git-lfs autoconf automake libtool pkg-config &&\
  apt-get install -y nasm python3 python3-pip &&\
  echo '[global]' >/etc/pip.conf &&\
  echo 'index-url = https://pypi.tuna.tsinghua.edu.cn/simple' >> /etc/pip.conf &&\
  pip3 install -U pip &&\
  pip3 config --global set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple &&\
  pip3 config --global set install.trusted-host pypi.tuna.tsinghua.edu.cn &&\
  pip3 install -U pip &&\
  pip3 config --global set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple &&\
  pip3 config --global set install.trusted-host pypi.tuna.tsinghua.edu.cn &&\
  pip3 install meson ninja &&\
  apt-get -y autoremove
相关推荐
To_OC7 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器
tryCbest10 小时前
Docker 从零到精通:知识与跨平台使用指南
docker·容器
开始学AI13 小时前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器
晨枫阳13 小时前
@changesets/cli是什么?哪些情况下需要使用?怎么使用
linux·运维·ubuntu
做前端的娜娜子14 小时前
Docker 常用命令全梳理:从镜像拉取到容器编排
docker·容器·掘金·金石计划
m0_5791466515 小时前
关于Docker Desktop导致C盘空间异常占用的排查与根治方案
运维·docker·容器
郝开18 小时前
Docker Compose 本地环境搭建:kkFileView
运维·docker·容器
hkNaruto19 小时前
【Linux】Ubuntu 22.04 LTS GNOME 原生远程桌面配置:告别vnc、nomachine
linux·运维·ubuntu
jufeng130720 小时前
【系列:TDengine 工业物联网实战:从零搭起可运行系统 · 第 10 篇】
docker·时序数据库·tdengine·高可用
Eloudy1 天前
Ubuntu 22.04 从源码编译安装 ROS 2 Jazzy 笔记
linux·笔记·ubuntu