前提
本文参考上文从零构建1个开发镜像 - 好方 (kengdie.xyz)
构建材料
Dockerfile如下
其中user.email和user.name经过修改,请改为自己
其中RUN字段中最后的echo为ssh的账号密码
FROM harbor.kengdie.xyz/k8s/library/ubuntu:22.04
MAINTAINER Fang_DevContainer
COPY sources.list /etc/apt/sources.list
COPY cos.yaml /root/.cos.yaml
RUN apt update && \
apt install -y mysql-client redis net-tools iputils-ping iproute2 openssh-server openssh-client curl vim wget git python3 python3-pip && \
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux -O /usr/bin/coscli && \
chmod +x /usr/bin/coscli && \
python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip && \
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
wget https://npmmirror.com/mirrors/node/v18.16.0/node-v18.16.0-linux-x64.tar.xz -O /tmp/node-v18.16.0-linux-x64.tar.xz && \
tar xvf /tmp/node-v18.16.0-linux-x64.tar.xz -C /usr/local/ && \
export PATH=$PATH:/usr/local/node-v18.16.0-linux-x64/bin/ && \
echo "export PATH=$PATH:/usr/local/node-v18.16.0-linux-x64/bin/" >> ~/.bashrc && \
npm set registry https://registry.npm.taobao.org && \
npm install -g npm@9.7.1 && \
npm install -g pnpm && \
pnpm set registry https://registry.npm.taobao.org && \
apt clean && \
rm -rf /tmp/* && \
git config --global user.email "1235136@qq.com" && \
git config --global user.name "Fang_DevContainer" && \
mkdir /run/sshd && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -i "s/#UseDNS.*/UseDNS no/g" /etc/ssh/sshd_config && \
echo root:Admin12345.. | chpasswd
WORKDIR /code
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
sources.list,来自于清华源官网:ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror,如下
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
cos.yaml,来自于腾讯云官网文档:对象存储 COSCLI 简介-工具指南-文档中心-腾讯云 (tencent.com),
注意,下文中的密钥以及bucket名称等均修改过,为无效
如下
cos:
base:
secretid: QJ/zyN5A+pJczDR0mAAbdMSo2NEzut2323424234AnkDW
secretkey: zzt0Jy2ivF30TBS00y87J423425235d9+JBIz
sessiontoken: 3kNZR4w23424Mw==
protocol: https
buckets:
- name: whoami-125000080
alias: whoami-18888880
region: "ap-chengdu"
endpoint: cos.ap-chengdu.myqcloud.com
ofs: false
构建
构建命令如下
docker build . --no-cache -t ubuntu:22.04-20230619-dev01
推送入库
docker tag ubuntu:22.04-20230619-dev01 harbor.kengdie.xyz/k8s/ubuntu:22.04-20230619-dev01
docker push !$
推送如下