zoukankan      html  css  js  c++  java
  • 在Docker Container 内部安装 Mono 的方法 ---From官网

    1.首先 mono 是什么

    Mono是一个由Xamarin公司(先前是Novell,最早为Ximian)所主持的自由开放源代码项目。   该项目的目标是创建一系列匹配ECMA标准(Ecma-334和Ecma-335)的.NET工具,包括C#编译器和通用语言架构。  与微软的.NET Framework(共通语言运行平台)不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris,甚至一些游戏平台,例如:Playstation 3,Wii或XBox 360
    
    摘自百度百科

    2. 公司的产品开发时需要用到mono 

    3. 最简单的办法是使用 微软的dotnet sdk 镜像再安装 mono

    4. 自己对mono几乎一无所知。

    5.最简单的办法, 从hub.docker 里面查找 mono 找到dockerfile 的创建方式 直接进行使用即可

    6. 连接到相应的dockerfile 里面 直接点击版本号 即可

    https://github.com/mono/docker/blob/c47c852008be6934ac650f282c18c70f2cfec72f/6.0.0.313/slim/Dockerfile

    网址在这里

    注意里面的内容为:

    FROM debian:stretch-slim
       
      # MAINTAINER Jo Shields <jo.shields@xamarin.com>
      # MAINTAINER Alexander Köplinger <alkpli@microsoft.com>
       
      ENV MONO_VERSION 6.0.0.313
       
      RUN apt-get update
      && apt-get install -y --no-install-recommends gnupg dirmngr
      && rm -rf /var/lib/apt/lists/*
      && export GNUPGHOME="$(mktemp -d)"
      && gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
      && gpg --batch --export --armor 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF > /etc/apt/trusted.gpg.d/mono.gpg.asc
      && gpgconf --kill all
      && rm -rf "$GNUPGHOME"
      && apt-key list | grep Xamarin
      && apt-get purge -y --auto-remove gnupg dirmngr
       
      RUN echo "deb http://download.mono-project.com/repo/debian stable-stretch/snapshots/$MONO_VERSION main" > /etc/apt/sources.list.d/mono-official-stable.list
      && apt-get update
      && apt-get install -y mono-runtime
      && rm -rf /var/lib/apt/lists/* /tmp/*
     

    7. 自己修改一下(庆幸的是 dotnet sdk 也使用的ubuntu 直接可以用如上的命令进行处理)

    FROM dotnetsdk2.1vimssh:gscloud1906
    # 注意这里是使用了自己安装 vim 的 images 进行的后续处理
    
    RUN apt-get update 
      && apt-get install -y --no-install-recommends gnupg dirmngr 
      && rm -rf /var/lib/apt/lists/* 
      && export GNUPGHOME="$(mktemp -d)" 
      && gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
      && gpg --batch --export --armor 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF > /etc/apt/trusted.gpg.d/mono.gpg.asc 
      && gpgconf --kill all 
      && rm -rf "$GNUPGHOME" 
      && apt-key list | grep Xamarin 
      && apt-get purge -y --auto-remove gnupg dirmngr
    ENV MONO_VERSION 6.0.0.313
    
    RUN echo "deb http://download.mono-project.com/repo/debian stable-stretch/snapshots/$MONO_VERSION main" > /etc/apt/sources.list.d/mono-official-stable.list 
      && apt-get update 
      && apt-get install -y mono-runtime 
      && rm -rf /var/lib/apt/lists/* /tmp/*

    8. 执行docker build 就可以生成带mono的环境了。 

  • 相关阅读:
    SQL Server查询死锁并KILL
    android之Widget01
    android之RatingBar控件用法
    android之SeekBar控件用法
    android之ExpandableListActivity
    【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成
    【吐槽】博客园新的原创文章在搜索引擎的排名不及转载的站点
    【资源】108个大数据文档PDF开放下载-整理后打包下载
    【原创】.NET平台机器学习组件-Infer.NET连载(二)贝叶斯分类器
    【原创】.NET平台机器学习组件-Infer.NET连载(一)介绍
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11257728.html
Copyright © 2011-2022 走看看