我不能用官方的镜像,因为我需要在小伙伴构建的 debian 镜像上面安装 dotnet sdk 用来做构建,其实在 docker 里面需要找到一个个文件,然后复制代码

这是小伙伴做的一个 jenkins 的镜像 jenkins/slave 我需要在这个镜像基础上安装 dotnet 进行构建

FROM jenkins/slave

在安装 dotnet 之前需要通过官方 https://github.com/dotnet/dotnet-docker 找到对应的 docker 文件,这样可以进行复制,可以看到官方是引用下面代码 buildpack-deps:buster-scm 这个库

FROM buildpack-deps:buster-scm 

需要找到 buildpack-deps:buster-scm 的代码

找到这个库的代码 https://github.com/docker-library/buildpack-deps/blob/b0fc01aa5e3aed6820d8fed6f3301e0542fbeb36/buster/curl/Dockerfile 可以复制,但是这个库依赖 FROM buildpack-deps:buster-curl 这个库,通过 docker hub 找到 https://github.com/docker-library/buildpack-deps/blob/b0fc01aa5e3aed6820d8fed6f3301e0542fbeb36/buster/curl/Dockerfile 也可以复制

# https://github.com/docker-library/buildpack-deps/blob/b0fc01aa5e3aed6820d8fed6f3301e0542fbeb36/buster/curl/Dockerfile
# FROM debian:buster
RUN apt-get update && apt-get install -y --no-install-recommends \ca-certificates \curl \netbase \wget \&& rm -rf /var/lib/apt/lists/*RUN set -ex; \if ! command -v gpg > /dev/null; then \apt-get update; \apt-get install -y --no-install-recommends \gnupg \dirmngr \; \rm -rf /var/lib/apt/lists/*; \fi# FROM buildpack-deps:buster-curl
# https://github.com/docker-library/buildpack-deps/blob/99a1c33fda559272e9322b02a5d778bbd04154e7/buster/scm/Dockerfile
# procps is very common in build systems, and is a reasonably small package
RUN apt-get update && apt-get install -y --no-install-recommends \git \mercurial \openssh-client \subversion \\procps \&& rm -rf /var/lib/apt/lists/*

使用 dotnet 官方地址下载速度太慢了,我请了小伙伴帮我下载,然后我将 dotnet-sdk-3.1.102-linux-x64.tar.gz 和 PowerShell.Linux.x64.7.0.0-rc.2.nupkg 放在 docker 文件相同文件夹

接下来是复制 dotnet 的代码

# https://raw.githubusercontent.com/dotnet/dotnet-docker/74c92451ecbd2876280ad51736a6eea4e98a1fb2/3.1/sdk/buster/amd64/Dockerfile
# FROM buildpack-deps:buster-scm
ENV \# Enable detection of running in a containerDOTNET_RUNNING_IN_CONTAINER=true \# Enable correct mode for dotnet watch (only mode supported in a container)DOTNET_USE_POLLING_FILE_WATCHER=true \# Skip extraction of XML docs - generally not useful within an image/container - helps performanceNUGET_XMLDOC_MODE=skip \# PowerShell telemetry for docker image usagePOWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetCoreSDK-Debian-10# Install .NET CLI dependencies
RUN apt-get update \&& apt-get install -y --no-install-recommends \libc6 \libgcc1 \libgssapi-krb5-2 \libicu63 \libssl1.1 \libstdc++6 \zlib1g \&& rm -rf /var/lib/apt/lists/*# Install .NET Core SDK
# 不从 https://dotnetcli.azureedge.net 下载,从本地复制
RUN dotnet_sdk_version=3.1.102 \
#    && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \&& dotnet_sha512='9cacdc9700468a915e6fa51a3e5539b3519dd35b13e7f9d6c4dd0077e298baac0e50ad1880181df6781ef1dc64a232e9f78ad8e4494022987d12812c4ca15f29' \&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \&& mkdir -p /usr/share/dotnet \&& tar -ozxf dotnet.tar.gz -C /usr/share/dotnet \&& rm dotnet.tar.gz \&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \# Trigger first run experience by running arbitrary cmd&& dotnet help# 不从 https://pwshtool.blob.core.windows.net 下载,从本地复制
# Install PowerShell global tool
RUN powershell_version=7.0.0-rc.2 \
#    && curl -SL --output PowerShell.Linux.x64.$powershell_version.nupkg https://pwshtool.blob.core.windows.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \
#   && powershell_sha512='59abcc11bd43fc8c1938a1854447c762092f03b5e2c6c354a82559eed6852e3920c5543c085fbe6fbe98871f96cd7409bb76b1537d3d8dee4e7432d578ec7603' \
#   && echo "$powershell_sha512  PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \&& mkdir -p /usr/share/powershell \&& dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.x64 \&& dotnet nuget locals all --clear \&& rm /PowerShell.Linux.x64.$powershell_version.nupkg \&& ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \&& chmod 755 /usr/share/powershell/pwsh \# To reduce image size, remove the copy nupkg that nuget keeps.

运行 docker build -t dotnet-sdk:3.0.102 . 就可以创建了

全部代码

FROM jenkins/slaveCOPY dotnet-sdk-3.1.102-linux-x64.tar.gz dotnet.tar.gz
COPY PowerShell.Linux.x64.7.0.0-rc.2.nupkg /# 使用国内源
RUN echo "" >> /etc/apt/sources.list \&& echo "deb http://ftp.cn.debian.org/debian/ buster main contrib non-free" >> /etc/apt/sources.list \&& echo "deb-src http://ftp.cn.debian.org/debian/ buster main contrib non-free" >> /etc/apt/sources.list \&& echo "deb http://ftp.cn.debian.org/debian-security/ buster/updates main contrib non-free" >> /etc/apt/sources.list \&& echo "deb-src http://ftp.cn.debian.org/debian-security/ buster/updates main contrib non-free" >> /etc/apt/sources.list \&& echo "deb http://ftp.cn.debian.org/debian/ buster-updates main contrib non-free" >> /etc/apt/sources.list \&& echo "deb-src http://ftp.cn.debian.org/debian/ buster-updates main contrib non-free" >> /etc/apt/sources.list \&& echo "deb http://ftp.cn.debian.org/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list \&& echo "deb-src http://ftp.cn.debian.org/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list# https://github.com/docker-library/buildpack-deps/blob/b0fc01aa5e3aed6820d8fed6f3301e0542fbeb36/buster/curl/Dockerfile
# FROM debian:buster
RUN apt-get update && apt-get install -y --no-install-recommends \ca-certificates \curl \netbase \wget \&& rm -rf /var/lib/apt/lists/*RUN set -ex; \if ! command -v gpg > /dev/null; then \apt-get update; \apt-get install -y --no-install-recommends \gnupg \dirmngr \; \rm -rf /var/lib/apt/lists/*; \fi# FROM buildpack-deps:buster-curl
# https://github.com/docker-library/buildpack-deps/blob/99a1c33fda559272e9322b02a5d778bbd04154e7/buster/scm/Dockerfile
# procps is very common in build systems, and is a reasonably small package
RUN apt-get update && apt-get install -y --no-install-recommends \git \mercurial \openssh-client \subversion \\procps \&& rm -rf /var/lib/apt/lists/*# https://raw.githubusercontent.com/dotnet/dotnet-docker/74c92451ecbd2876280ad51736a6eea4e98a1fb2/3.1/sdk/buster/amd64/Dockerfile
# FROM buildpack-deps:buster-scm
ENV \# Enable detection of running in a containerDOTNET_RUNNING_IN_CONTAINER=true \# Enable correct mode for dotnet watch (only mode supported in a container)DOTNET_USE_POLLING_FILE_WATCHER=true \# Skip extraction of XML docs - generally not useful within an image/container - helps performanceNUGET_XMLDOC_MODE=skip \# PowerShell telemetry for docker image usagePOWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetCoreSDK-Debian-10# Install .NET CLI dependencies
RUN apt-get update \&& apt-get install -y --no-install-recommends \libc6 \libgcc1 \libgssapi-krb5-2 \libicu63 \libssl1.1 \libstdc++6 \zlib1g \&& rm -rf /var/lib/apt/lists/*# Install .NET Core SDK
# 不从 https://dotnetcli.azureedge.net 下载,从本地复制
RUN dotnet_sdk_version=3.1.102 \
#    && curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \&& dotnet_sha512='9cacdc9700468a915e6fa51a3e5539b3519dd35b13e7f9d6c4dd0077e298baac0e50ad1880181df6781ef1dc64a232e9f78ad8e4494022987d12812c4ca15f29' \&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \&& mkdir -p /usr/share/dotnet \&& tar -ozxf dotnet.tar.gz -C /usr/share/dotnet \&& rm dotnet.tar.gz \&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \# Trigger first run experience by running arbitrary cmd&& dotnet help# 不从 https://pwshtool.blob.core.windows.net 下载,从本地复制
# Install PowerShell global tool
RUN powershell_version=7.0.0-rc.2 \
#    && curl -SL --output PowerShell.Linux.x64.$powershell_version.nupkg https://pwshtool.blob.core.windows.net/tool/$powershell_version/PowerShell.Linux.x64.$powershell_version.nupkg \
#   && powershell_sha512='59abcc11bd43fc8c1938a1854447c762092f03b5e2c6c354a82559eed6852e3920c5543c085fbe6fbe98871f96cd7409bb76b1537d3d8dee4e7432d578ec7603' \
#   && echo "$powershell_sha512  PowerShell.Linux.x64.$powershell_version.nupkg" | sha512sum -c - \&& mkdir -p /usr/share/powershell \&& dotnet tool install --add-source / --tool-path /usr/share/powershell --version $powershell_version PowerShell.Linux.x64 \&& dotnet nuget locals all --clear \&& rm /PowerShell.Linux.x64.$powershell_version.nupkg \&& ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \&& chmod 755 /usr/share/powershell/pwsh \# To reduce image size, remove the copy nupkg that nuget keeps.

我将本文用到两个资源 CSDN 如果没法下载请发我邮件

dotnet-sdk-3.1.102-linux-x64.tar.gz

PowerShell.Linux.x64.7.0.0-rc.2.nupkg

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。


http://www.taodudu.cc/news/show-6108320.html

相关文章:

  • docker中安装mongo3.2
  • 易语言MySQL静态编译,我说易语言静态编译太强大……
  • java八大数据类型详解及其变量详解
  • linux各种装机
  • 如何查看支付宝商户ID(支付宝pid)?
  • android仿支付宝弹窗,AlipayPassDialog Android 仿支付宝密码键盘弹框,可以自定义样式 Dialog,调节字体颜色大小内容 @codeKK Android开源站...
  • 支付宝小程序财富号基金相关页面之间相关跳转
  • android仿支付宝弹窗,实现支付宝支付从底部弹窗效果
  • 支付宝里面基金的猫腻?为什么计算对不上?
  • iOS逆向-支付宝基金之统计实时收益
  • echarts 仿支付宝基金七日年化折线图
  • 空之轨迹手游服务器维护,空之轨迹7月9日临时维护公告_空之轨迹7月9日更新了什么_玩游戏网...
  • 勇敢的心——感动内德
  • 所有的伟大都源于一次勇敢的开始
  • 《勇敢的心》
  • 转:要使一个人有一颗自由、独立、勇敢的心
  • 适合长时间佩戴的耳机有哪些、六款适合久戴的运动耳机推荐
  • 2022年最热门三款骨传导测评推荐:骨传导选购指南分享,骨传导耳机选哪款好?
  • 高性价比蓝牙耳机选什么好?四款高性价比蓝牙耳机测评
  • 圣诞节蓝牙耳机选哪款作为礼物比较好?耐用的蓝牙耳机推荐
  • 适合学生党的蓝牙耳机选哪个?学生党最爱的几款蓝牙耳机
  • 618蓝牙耳机选哪一款比较好?推荐口碑最好的无线蓝牙耳机品牌
  • 2022年双十一蓝牙耳机选哪款?便宜音质好的蓝牙耳机推荐
  • 平价蓝牙耳机选哪个?盘点性价比高的无线蓝牙耳机
  • 蓝牙耳机选什么好?5款主打高性价比的蓝牙耳机推荐
  • 蓝牙耳机选哪种的比较好、高端蓝牙耳机推荐
  • 2022无线蓝牙耳机选哪个?盘点超热门的蓝牙耳机品牌推荐
  • 运动蓝牙耳机选什么类型、蓝牙运动耳机推荐
  • 2022年618蓝牙耳机选什么牌子好?618性价比高的蓝牙耳机推荐
  • 蓝牙耳机选哪个?盘点双十二必入的高性价比蓝牙耳机

dotnet 基于 debian 创建一个 docker 的 sdk 镜像相关推荐

  1. 基于Dockerfile创建一个最简单的docker镜像

    试着创建一个docker image, 不在乎实用性和功能,只是对docker 创建image 有个大概的了解,所以有此文章. 文章目录 step1. 创建文件夹 step2. 进入文件夹 step3 ...

  2. java订单类_基于Java创建一个订单类代码实例

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...

  3. 创建一个docker容器

    根据第一节,把docker安装完毕并学习了基本操作之后,我们来学习构建一个docker应用程序 要创建一个便携的镜像,首先需要创建一个叫做Dockerfile的文件,这个文件定义了你要创建的容器所需要 ...

  4. Docker——创建一个docker nginx镜像并通过浏览器访问

    在本篇中,笔者将创建一个新的nginx的Docker镜像,运行后通过浏览器进行访问. 先使用docker image查看我们现在有的镜像. 打开一个容器. 更新并安装nginx的包.可以看到遇到这种问 ...

  5. 基于maven创建一个javaweb项目

    一.使用步骤 1.引入库 创建一个web 在main目录下创建java和resources lib目录下面存放jar包 配置Paths 配置Dependencies 配置Tomcat 启动Tomcat ...

  6. 基于unity创建一个简单的VR demo

    创建一个VR项目 我们将使用Unity创建一个简单的VR项目demo,其效果是在VR头盔中观察一个立方体. Step 1 打开Unity,创建一个新的空项目. Step 2 在Unity的菜单中选择F ...

  7. docker新建Linux虚拟机,RHEL/CentOS 7下创建你的第一个Docker容器

    Docker容器人气一直在增长.他们现在正在快速采用,正在取代虚拟机,特别是在应用程序开发方面. 在本教程中,我们将讨论Docker容器的内容,并将学习在RHEL/CentOS 7上安装它的过程. D ...

  8. java的linux内核构建,构建一个Docker 的Java编译环境

    用Dockerfile 构建一个Java的编译环境 1.包括以下软件包 Ubuntu jdk maven svn 2.jdk.maven 需要手动下载,下载之后分别为 jdk-8u51-linux-x ...

  9. 如何在Kubernetes里创建一个Nginx service

    Jerry之前的文章如何在Kubernetes里创建一个Nginx应用,已经使用kubectl命令行创建了Pod,但是在kubernetes中,Pod的IP地址会随着Pod的重启而变化,因此用Pod的 ...

最新文章

  1. 乐山计算机学校3十3,学校传真
  2. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值、中位数)实战
  3. VC中CListCtrl中的LVCOLUMN和LVITEM详细介绍
  4. maven jdk 版本配置
  5. java选择题答案_Java习题附答案
  6. 标准物模型:设备无缝对接,IOT界的福音
  7. mysql5.7编译安装
  8. 【汇编语言】多模块程序结构
  9. LIO-SAM探秘第三章之代码解析(一) --- utility.h + imageProjection.cpp
  10. numpy.zeros(np.zeros)
  11. android圆图,Android实现圆形图片或者圆角图片
  12. spring源码:idea搭建源码环境
  13. 虚幻4引擎开发的手游_掌上视觉进化,盘点近年虚幻4引擎开发的手游大作
  14. SIM800A 建立网络
  15. Oracle中对时间操作的一些总结
  16. 讯图科技数据网关解决方案
  17. android 百度地图 gps数据转换百度经纬度
  18. 反函数求一阶导和二阶导的推导过程
  19. 微服务注册中心:Consul——服务注册
  20. 微信公众号文章添加腾讯问卷的方法

热门文章

  1. #Cprove7-9 函数应用
  2. cocos2dx画扇形
  3. 【AWS云从业者基础知识笔记】——模块10:云计算之旅
  4. Win11还原Win10开始菜单及任务栏工具[Win7勿入]
  5. VX_Ipad协议和Mac协议
  6. AutoCAD快速入门(十三):倒角和圆角
  7. Java 内存模型如何保证多线程安全
  8. 教你如何在2023年办好水土保持资质
  9. 无死角窥探的焦虑:AI如何反击隐私侵占?
  10. 前端 下载文件简易方法(兼容IE)