1、安装Docker
参考文档:
2、C#的Docker镜像
镜像是基于Alpine Linux映像的,本身的镜像只有5MB。C#的编译环境是基于Mono安装配置的。获取Mono的docker镜像,有两种方式,一种是通过docker pull命令获取,另一种是通过Dockerfile文件创建,具体如下,
1)使用docker pull命令
使用docker pull命令获取https://hub.docker.com/
中存储公共镜像,如下,
docker pull frolvlad/alpine-mono
注意:使用docker run
命令时,如果镜像本地不存在会自动调用docker pull获取镜像。
2)使用Dockerfile文件创建
Dockerfile文件:
FROM alpine:3.14 RUN apk add --no-cache mono --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing && \ apk add --no-cache --virtual=.build-dependencies ca-certificates && \ cert-sync /etc/ssl/certs/ca-certificates.crt && \ apk del .build-dependencies
生成本地镜像:
docker build -t cjavapy/alpine-mono .
3、C#的Docker容器
创建容器可以使用https://hub.docker.com/上的frolvlad/alpine-mono
镜像,也可以使用上面我们通过Dockerfile文件创建的本地镜像。
1)使用frolvlad/alpine-mono镜像
$ echo 'using System; class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World"); } }' > sample.mono $ docker run --rm -v "$(pwd)":/mnt frolvlad/alpine-mono sh -c "mcs -out:/mnt/sample.exe /mnt/sample.mono && mono /mnt/sample.exe"
2)使用cjavapy/alpine-mono镜像
$ echo 'using System; class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World"); } }' > sample.mono $ docker run --rm -v "$(pwd)":/mnt cjavapy/alpine-mono sh -c "mcs -out:/mnt/sample.exe /mnt/sample.mono && mono /mnt/sample.exe"
相关文档: