├── tests ├── import_clr.py ├── hello.exe ├── hello_mono.sh └── hello.cs ├── Dockerfile.template ├── config.csv ├── snippets ├── pythonnet-from-pypi ├── pythonnet-from-github └── mono ├── _dockerfiles ├── python3.11.2-mono6.12-pythonnet3.0.1 ├── python3.9.16-mono6.12-pythonnet3.0.1 └── python3.10.10-mono6.12-pythonnet3.0.1 ├── archived-dockerfiles ├── python3.10.9-mono6.12-pythonnet3.0.1 ├── python3.11.1-mono6.12-pythonnet3.0.1 ├── python2.7.18-mono5.20-pythonnet2.5.0 ├── python2.7.18-mono5.20-pythonnet2.5.1 ├── python2.7.18-mono5.20-pythonnet2.5.2 ├── python3.5.7-mono5.20-pythonnet2.4.0 ├── python3.5.9-mono5.20-pythonnet2.4.0 ├── python3.5.9-mono5.20-pythonnet2.5.0 ├── python3.5.9-mono5.20-pythonnet2.5.1 ├── python3.5.9-mono5.20-pythonnet2.5.2 ├── python3.6.10-mono5.20-pythonnet2.5.0 ├── python3.6.10-mono5.20-pythonnet2.5.1 ├── python3.6.14-mono5.20-pythonnet2.5.2 ├── python3.6.9-mono5.20-pythonnet2.4.0 ├── python3.7.11-mono5.20-pythonnet2.5.2 ├── python3.7.4-mono5.20-pythonnet2.4.0 ├── python3.7.7-mono5.20-pythonnet2.4.0 ├── python3.7.7-mono5.20-pythonnet2.5.0 ├── python3.7.7-mono5.20-pythonnet2.5.1 ├── python3.8.10-mono6.12-pythonnet2.5.2 ├── python3.8.11-mono5.20-pythonnet2.5.2 ├── python3.8.11-mono6.12-pythonnet2.5.2 ├── python3.8.3-mono5.20-pythonnet2.5.0 ├── python3.8.3-mono5.20-pythonnet2.5.1 ├── python2.7.16-mono5.20-pythonnet2.4.0 ├── python2.7.18-mono5.20-pythonnet2.4.0 ├── python3.6.10-mono5.20-pythonnet2.4.0 ├── python3.6.14-mono5.20-pythonnet2.4.0 ├── python3.7.11-mono5.20-pythonnet2.4.0 ├── python3.4.7-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python3.5.4-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python3.6.4-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python3.4.7-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.5.4-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.6.4-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.4.8-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python3.5.5-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python3.6.5-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python2.7.14-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile ├── python2.7.14-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.4.8-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.5.5-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.6.5-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile ├── python3.4.7-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python3.5.4-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python3.6.4-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python3.4.8-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python3.5.5-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python3.6.5-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python2.7.14-mono4.8.0.524-pythonnet2.3.0.Dockerfile ├── python3.4.7-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile ├── python3.5.4-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile ├── python3.6.4-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile ├── python3.4.8-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile ├── python3.5.5-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile ├── python3.6.5-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile └── python2.7.14-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile ├── LICENSE ├── .github └── workflows │ ├── build.yml │ └── push.yml ├── generate_dockerfiles.py └── README.md /tests/import_clr.py: -------------------------------------------------------------------------------- 1 | import clr 2 | 3 | print("Hello pythonnet") 4 | -------------------------------------------------------------------------------- /tests/hello.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelosthege/pythonnet-docker/HEAD/tests/hello.exe -------------------------------------------------------------------------------- /tests/hello_mono.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mcs /tmp/tests/hello.cs 4 | mono /tmp/tests/hello.exe 5 | -------------------------------------------------------------------------------- /Dockerfile.template: -------------------------------------------------------------------------------- 1 | FROM python:${PYTHON_VERSION}-${DEBIAN_VERSION} 2 | 3 | ${MONO_SNIPPET} 4 | 5 | ${PYTHONNET_SNIPPET} 6 | -------------------------------------------------------------------------------- /config.csv: -------------------------------------------------------------------------------- 1 | debian_version,python_version,mono_version,pythonnet_version 2 | bullseye,3.9.16,6.12,3.0.1 3 | bullseye,3.10.10,6.12,3.0.1 4 | bullseye,3.11.2,6.12,3.0.1 5 | -------------------------------------------------------------------------------- /tests/hello.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class HelloWorld 4 | { 5 | static public void Main () 6 | { 7 | Console.WriteLine ("Hello Mono World"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /snippets/pythonnet-from-pypi: -------------------------------------------------------------------------------- 1 | # Pythonnet: ${PYTHONNET_VERSION} (from PyPI) 2 | # Note: pycparser must be installed before pythonnet can be built 3 | 4 | RUN pip install pycparser \ 5 | && pip install pythonnet==${PYTHONNET_VERSION} 6 | -------------------------------------------------------------------------------- /snippets/pythonnet-from-github: -------------------------------------------------------------------------------- 1 | # RUN pip install pycparser pythonnet==${PYTHONNET_VERSION} (from Github) 2 | 3 | RUN pip install pycparser \ 4 | && git clone https://github.com/pythonnet/pythonnet \ 5 | && python pythonnet/setup.py bdist_wheel \ 6 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 7 | -------------------------------------------------------------------------------- /snippets/mono: -------------------------------------------------------------------------------- 1 | # Mono: ${MONO_VERSION} 2 | 3 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 4 | && echo "deb http://download.mono-project.com/repo/debian buster/snapshots/$MONO_VERSION main" > /etc/apt/sources.list.d/mono-official.list \ 5 | && apt-get update \ 6 | && apt-get install -y clang \ 7 | && apt-get install -y mono-devel=${MONO_VERSION}\* \ 8 | && rm -rf /var/lib/apt/lists/* /tmp/* 9 | -------------------------------------------------------------------------------- /_dockerfiles/python3.11.2-mono6.12-pythonnet3.0.1: -------------------------------------------------------------------------------- 1 | FROM python:3.11.2-bullseye 2 | 3 | # Mono: 6.12 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian buster/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-devel=6.12\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # Pythonnet: 3.0.1 (from PyPI) 14 | # Note: pycparser must be installed before pythonnet can be built 15 | 16 | RUN pip install pycparser \ 17 | && pip install pythonnet==3.0.1 18 | 19 | -------------------------------------------------------------------------------- /_dockerfiles/python3.9.16-mono6.12-pythonnet3.0.1: -------------------------------------------------------------------------------- 1 | FROM python:3.9.16-bullseye 2 | 3 | # Mono: 6.12 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian buster/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-devel=6.12\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # Pythonnet: 3.0.1 (from PyPI) 14 | # Note: pycparser must be installed before pythonnet can be built 15 | 16 | RUN pip install pycparser \ 17 | && pip install pythonnet==3.0.1 18 | 19 | -------------------------------------------------------------------------------- /_dockerfiles/python3.10.10-mono6.12-pythonnet3.0.1: -------------------------------------------------------------------------------- 1 | FROM python:3.10.10-bullseye 2 | 3 | # Mono: 6.12 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian buster/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-devel=6.12\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # Pythonnet: 3.0.1 (from PyPI) 14 | # Note: pycparser must be installed before pythonnet can be built 15 | 16 | RUN pip install pycparser \ 17 | && pip install pythonnet==3.0.1 18 | 19 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.10.9-mono6.12-pythonnet3.0.1: -------------------------------------------------------------------------------- 1 | FROM python:3.10.9-bullseye 2 | 3 | # Mono: 6.12 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian buster/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-devel=6.12\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # Pythonnet: 3.0.1 (from PyPI) 14 | # Note: pycparser must be installed before pythonnet can be built 15 | 16 | RUN pip install pycparser \ 17 | && pip install pythonnet==3.0.1 18 | 19 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.11.1-mono6.12-pythonnet3.0.1: -------------------------------------------------------------------------------- 1 | FROM python:3.11.1-bullseye 2 | 3 | # Mono: 6.12 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian buster/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-devel=6.12\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # Pythonnet: 3.0.1 (from PyPI) 14 | # Note: pycparser must be installed before pythonnet can be built 15 | 16 | RUN pip install pycparser \ 17 | && pip install pythonnet==3.0.1 18 | 19 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.18-mono5.20-pythonnet2.5.0: -------------------------------------------------------------------------------- 1 | FROM python:2.7.18-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.18-mono5.20-pythonnet2.5.1: -------------------------------------------------------------------------------- 1 | FROM python:2.7.18-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.1 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.1 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.18-mono5.20-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:2.7.18-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.7-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.5.7-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.9-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.5.9-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.9-mono5.20-pythonnet2.5.0: -------------------------------------------------------------------------------- 1 | FROM python:3.5.9-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.9-mono5.20-pythonnet2.5.1: -------------------------------------------------------------------------------- 1 | FROM python:3.5.9-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.1 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.1 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.9-mono5.20-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:3.5.9-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.10-mono5.20-pythonnet2.5.0: -------------------------------------------------------------------------------- 1 | FROM python:3.6.10-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.10-mono5.20-pythonnet2.5.1: -------------------------------------------------------------------------------- 1 | FROM python:3.6.10-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.1 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.1 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.14-mono5.20-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:3.6.14-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.9-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.6.9-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.7.11-mono5.20-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:3.7.11-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.7.4-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.7.4-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.7.7-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.7.7-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.7.7-mono5.20-pythonnet2.5.0: -------------------------------------------------------------------------------- 1 | FROM python:3.7.7-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.7.7-mono5.20-pythonnet2.5.1: -------------------------------------------------------------------------------- 1 | FROM python:3.7.7-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.1 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.1 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.8.10-mono6.12-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:3.8.10-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 6.12 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=6.12\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.8.11-mono5.20-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:3.8.11-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.8.11-mono6.12-pythonnet2.5.2: -------------------------------------------------------------------------------- 1 | FROM python:3.8.11-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 6.12 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/6.12 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=6.12\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.2 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.2 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.8.3-mono5.20-pythonnet2.5.0: -------------------------------------------------------------------------------- 1 | FROM python:3.8.3-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.8.3-mono5.20-pythonnet2.5.1: -------------------------------------------------------------------------------- 1 | FROM python:3.8.3-buster 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.5.1 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.5.1 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.16-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:2.7.16-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.18-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:2.7.18-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.10-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.6.10-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.14-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.6.14-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.7.11-mono5.20-pythonnet2.4.0: -------------------------------------------------------------------------------- 1 | FROM python:3.7.11-stretch 2 | LABEL maintainer="jn@jonasneubert.com" 3 | 4 | # Mono: 5.20 5 | 6 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 7 | && echo "deb http://download.mono-project.com/repo/debian stretch/snapshots/5.20 main" > /etc/apt/sources.list.d/mono-official.list \ 8 | && apt-get update \ 9 | && apt-get install -y clang \ 10 | && apt-get install -y mono-devel=5.20\* \ 11 | && rm -rf /var/lib/apt/lists/* /tmp/* 12 | 13 | 14 | # Pythonnet: 2.4.0 (from PyPI) 15 | # Note: pycparser must be installed before pythonnet can be built 16 | 17 | RUN pip install pycparser \ 18 | && pip install pythonnet==2.4.0 19 | 20 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.7-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.7-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-complete=5.4.1.6\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 14 | 15 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 16 | 17 | RUN pip install pycparser \ 18 | && git clone https://github.com/pythonnet/pythonnet \ 19 | && python pythonnet/setup.py bdist_wheel \ 20 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 21 | 22 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.4-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.4-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-complete=5.4.1.6\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 14 | 15 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 16 | 17 | RUN pip install pycparser \ 18 | && git clone https://github.com/pythonnet/pythonnet \ 19 | && python pythonnet/setup.py bdist_wheel \ 20 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 21 | 22 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.4-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.4-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-complete=5.4.1.6\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 14 | 15 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 16 | 17 | RUN pip install pycparser \ 18 | && git clone https://github.com/pythonnet/pythonnet \ 19 | && python pythonnet/setup.py bdist_wheel \ 20 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 21 | 22 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.7-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.7-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-complete=5.2.0.224\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 14 | 15 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 16 | 17 | RUN pip install pycparser \ 18 | && git clone https://github.com/pythonnet/pythonnet \ 19 | && python pythonnet/setup.py bdist_wheel \ 20 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 21 | 22 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.4-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.4-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-complete=5.2.0.224\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 14 | 15 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 16 | 17 | RUN pip install pycparser \ 18 | && git clone https://github.com/pythonnet/pythonnet \ 19 | && python pythonnet/setup.py bdist_wheel \ 20 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 21 | 22 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.4-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.4-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 6 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 7 | && apt-get update \ 8 | && apt-get install -y clang \ 9 | && apt-get install -y mono-complete=5.2.0.224\* \ 10 | && rm -rf /var/lib/apt/lists/* /tmp/* 11 | 12 | 13 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 14 | 15 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 16 | 17 | RUN pip install pycparser \ 18 | && git clone https://github.com/pythonnet/pythonnet \ 19 | && python pythonnet/setup.py bdist_wheel \ 20 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 21 | 22 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.8-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.8-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.4.1.6\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.5-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.5-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.4.1.6\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.5-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.5-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.4.1.6\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.14-mono5.4.1.6-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2.7.14-jessie 2 | 3 | # Mono: 5.4.1.6 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.4.1.6/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.4.1.6\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.14-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2.7.14-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.2.0.224\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.8-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.8-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.2.0.224\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.5-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.5-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.2.0.224\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.5-mono5.2.0.224-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.5-jessie 2 | 3 | # Mono: 5.2.0.224 4 | 5 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 6 | # included in the following statement. 7 | 8 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 9 | && echo "deb http://download.mono-project.com/repo/debian jessie/snapshots/5.2.0.224/. main" > /etc/apt/sources.list.d/mono-official.list \ 10 | && apt-get update \ 11 | && apt-get install -y clang \ 12 | && apt-get install -y mono-complete=5.2.0.224\* \ 13 | && rm -rf /var/lib/apt/lists/* /tmp/* 14 | 15 | 16 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 17 | 18 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 19 | 20 | RUN pip install pycparser \ 21 | && git clone https://github.com/pythonnet/pythonnet \ 22 | && python pythonnet/setup.py bdist_wheel \ 23 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Jonas Neubert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | on: 3 | pull_request: 4 | paths: 5 | - ".github/workflows/build.yml" 6 | - "_dockerfiles/*" 7 | - "snippets/*" 8 | 9 | jobs: 10 | build-image: 11 | strategy: 12 | matrix: 13 | dockerfile: 14 | - python3.9.16-mono6.12-pythonnet3.0.1 15 | - python3.10.10-mono6.12-pythonnet3.0.1 16 | - python3.11.2-mono6.12-pythonnet3.0.1 17 | fail-fast: false 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Checkout code 21 | uses: actions/checkout@v3 22 | - name: Build and load image 23 | uses: docker/build-push-action@v3 24 | with: 25 | context: . 26 | file: _dockerfiles/${{ matrix.dockerfile }} 27 | load: true 28 | tags: mosthege/pythonnet:${{ matrix.dockerfile }} 29 | 30 | - name: Test the image 31 | run: | 32 | docker run --rm -v $(pwd)/tests:/tmp/tests mosthege/pythonnet:${{ matrix.dockerfile }} bash -c "/tmp/tests/hello_mono.sh" 33 | docker run --rm -v $(pwd)/tests:/tmp/tests mosthege/pythonnet:${{ matrix.dockerfile }} bash -c "python /tmp/tests/import_clr.py" 34 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.7-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.7-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 12 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 13 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 14 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 15 | && apt-get update \ 16 | && apt-get install -y clang \ 17 | && apt-get install -y mono-complete=4.8.0.524\* \ 18 | && rm -rf /var/lib/apt/lists/* /tmp/* 19 | 20 | 21 | # Pythonnet: 2.3.0 (from PyPI) 22 | 23 | # Note: pycparser must be installed before pythonnet can be built, therefore 24 | # pip install pycparser pythonnet 25 | 26 | RUN pip install pycparser \ 27 | && pip install pythonnet==2.3.0 28 | 29 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.4-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.4-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 12 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 13 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 14 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 15 | && apt-get update \ 16 | && apt-get install -y clang \ 17 | && apt-get install -y mono-complete=4.8.0.524\* \ 18 | && rm -rf /var/lib/apt/lists/* /tmp/* 19 | 20 | 21 | # Pythonnet: 2.3.0 (from PyPI) 22 | 23 | # Note: pycparser must be installed before pythonnet can be built, therefore 24 | # pip install pycparser pythonnet 25 | 26 | RUN pip install pycparser \ 27 | && pip install pythonnet==2.3.0 28 | 29 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.4-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.4-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 12 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 13 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 14 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 15 | && apt-get update \ 16 | && apt-get install -y clang \ 17 | && apt-get install -y mono-complete=4.8.0.524\* \ 18 | && rm -rf /var/lib/apt/lists/* /tmp/* 19 | 20 | 21 | # Pythonnet: 2.3.0 (from PyPI) 22 | 23 | # Note: pycparser must be installed before pythonnet can be built, therefore 24 | # pip install pycparser pythonnet 25 | 26 | RUN pip install pycparser \ 27 | && pip install pythonnet==2.3.0 28 | 29 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.8-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.8-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # Pythonnet: 2.3.0 (from PyPI) 25 | 26 | # Note: pycparser must be installed before pythonnet can be built, therefore 27 | # pip install pycparser pythonnet 28 | 29 | RUN pip install pycparser \ 30 | && pip install pythonnet==2.3.0 31 | 32 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.5-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.5-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # Pythonnet: 2.3.0 (from PyPI) 25 | 26 | # Note: pycparser must be installed before pythonnet can be built, therefore 27 | # pip install pycparser pythonnet 28 | 29 | RUN pip install pycparser \ 30 | && pip install pythonnet==2.3.0 31 | 32 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.5-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.5-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # Pythonnet: 2.3.0 (from PyPI) 25 | 26 | # Note: pycparser must be installed before pythonnet can be built, therefore 27 | # pip install pycparser pythonnet 28 | 29 | RUN pip install pycparser \ 30 | && pip install pythonnet==2.3.0 31 | 32 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.14-mono4.8.0.524-pythonnet2.3.0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2.7.14-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # Pythonnet: 2.3.0 (from PyPI) 25 | 26 | # Note: pycparser must be installed before pythonnet can be built, therefore 27 | # pip install pycparser pythonnet 28 | 29 | RUN pip install pycparser \ 30 | && pip install pythonnet==2.3.0 31 | 32 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.7-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.7-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 12 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 13 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 14 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 15 | && apt-get update \ 16 | && apt-get install -y clang \ 17 | && apt-get install -y mono-complete=4.8.0.524\* \ 18 | && rm -rf /var/lib/apt/lists/* /tmp/* 19 | 20 | 21 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 22 | 23 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 24 | 25 | RUN pip install pycparser \ 26 | && git clone https://github.com/pythonnet/pythonnet \ 27 | && python pythonnet/setup.py bdist_wheel \ 28 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 29 | 30 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.4-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.4-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 12 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 13 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 14 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 15 | && apt-get update \ 16 | && apt-get install -y clang \ 17 | && apt-get install -y mono-complete=4.8.0.524\* \ 18 | && rm -rf /var/lib/apt/lists/* /tmp/* 19 | 20 | 21 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 22 | 23 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 24 | 25 | RUN pip install pycparser \ 26 | && git clone https://github.com/pythonnet/pythonnet \ 27 | && python pythonnet/setup.py bdist_wheel \ 28 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 29 | 30 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.4-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.4-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 12 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 13 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 14 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 15 | && apt-get update \ 16 | && apt-get install -y clang \ 17 | && apt-get install -y mono-complete=4.8.0.524\* \ 18 | && rm -rf /var/lib/apt/lists/* /tmp/* 19 | 20 | 21 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 22 | 23 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 24 | 25 | RUN pip install pycparser \ 26 | && git clone https://github.com/pythonnet/pythonnet \ 27 | && python pythonnet/setup.py bdist_wheel \ 28 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 29 | 30 | -------------------------------------------------------------------------------- /.github/workflows/push.yml: -------------------------------------------------------------------------------- 1 | name: push 2 | on: 3 | push: 4 | branches: [main] 5 | paths: 6 | - ".github/workflows/push.yml" 7 | - "_dockerfiles/*" 8 | - "snippets/*" 9 | 10 | jobs: 11 | build-image: 12 | strategy: 13 | matrix: 14 | dockerfile: 15 | - python3.9.16-mono6.12-pythonnet3.0.1 16 | - python3.10.10-mono6.12-pythonnet3.0.1 17 | - python3.11.2-mono6.12-pythonnet3.0.1 18 | fail-fast: false 19 | runs-on: ubuntu-latest 20 | steps: 21 | - name: Checkout code 22 | uses: actions/checkout@v3 23 | - name: Build and load image 24 | uses: docker/build-push-action@v3 25 | with: 26 | context: . 27 | file: _dockerfiles/${{ matrix.dockerfile }} 28 | load: true 29 | tags: mosthege/pythonnet:${{ matrix.dockerfile }} 30 | - name: Test the image 31 | run: | 32 | docker run --rm -v $(pwd)/tests:/tmp/tests mosthege/pythonnet:${{ matrix.dockerfile }} bash -c "/tmp/tests/hello_mono.sh" 33 | docker run --rm -v $(pwd)/tests:/tmp/tests mosthege/pythonnet:${{ matrix.dockerfile }} bash -c "python /tmp/tests/import_clr.py" 34 | - name: Login to Docker Hub 35 | uses: docker/login-action@v2 36 | with: 37 | username: ${{ secrets.DOCKERHUB_USERNAME }} 38 | password: ${{ secrets.DOCKERHUB_TOKEN }} 39 | - name: Build and push 40 | uses: docker/build-push-action@v3 41 | with: 42 | context: . 43 | push: true 44 | file: _dockerfiles/${{ matrix.dockerfile }} 45 | tags: mosthege/pythonnet:${{ matrix.dockerfile }} 46 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.4.8-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.4.8-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 25 | 26 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 27 | 28 | RUN pip install pycparser \ 29 | && git clone https://github.com/pythonnet/pythonnet \ 30 | && python pythonnet/setup.py bdist_wheel \ 31 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 32 | 33 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.5.5-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.5.5-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 25 | 26 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 27 | 28 | RUN pip install pycparser \ 29 | && git clone https://github.com/pythonnet/pythonnet \ 30 | && python pythonnet/setup.py bdist_wheel \ 31 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 32 | 33 | -------------------------------------------------------------------------------- /archived-dockerfiles/python3.6.5-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.5-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 25 | 26 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 27 | 28 | RUN pip install pycparser \ 29 | && git clone https://github.com/pythonnet/pythonnet \ 30 | && python pythonnet/setup.py bdist_wheel \ 31 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 32 | 33 | -------------------------------------------------------------------------------- /archived-dockerfiles/python2.7.14-mono4.8.0.524-pythonnet2.4.0.dev0.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:2.7.14-jessie 2 | 3 | # Mono: 4.8.0.524 4 | 5 | # The Mono Project doesn't publish Mono 4.x snapshots for Jessie. Instead, use 6 | # Wheezy snapshots plus its "compat libraries" (dependencies not originally 7 | # maintained by the Mono Project that were part of Wheezy but are not part of 8 | # Jessie) instead. 9 | # See https://stackoverflow.com/questions/29982959/how-to-install-mono-4-0-1-on-debian-8 10 | 11 | # See https://bugzilla.xamarin.com/show_bug.cgi?id=24902 for why the "/." is 12 | # included in the following statement. 13 | 14 | RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ 15 | && echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/4.8.0.524/. main" > /etc/apt/sources.list.d/mono-official.list \ 16 | && echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 17 | && echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" >> /etc/apt/sources.list.d/mono-official.list \ 18 | && apt-get update \ 19 | && apt-get install -y clang \ 20 | && apt-get install -y mono-complete=4.8.0.524\* \ 21 | && rm -rf /var/lib/apt/lists/* /tmp/* 22 | 23 | 24 | # RUN pip install pycparser pythonnet==2.4.0.dev0 (from Github) 25 | 26 | # pythonnet 2.4.0 is still in development and not available on PyPI yet 27 | 28 | RUN pip install pycparser \ 29 | && git clone https://github.com/pythonnet/pythonnet \ 30 | && python pythonnet/setup.py bdist_wheel \ 31 | && pip install --no-index --find-links=./pythonnet/dist/ pythonnet 32 | 33 | -------------------------------------------------------------------------------- /generate_dockerfiles.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import argparse 4 | import csv 5 | from pathlib import Path 6 | from string import Template 7 | 8 | 9 | def get_lines(cfg_path): 10 | with cfg_path.open() as cfg_file: 11 | return [line.strip() for line in cfg_file.readlines()] 12 | 13 | 14 | def get_template(template_path): 15 | with template_path.open() as template_file: 16 | return Template(template_file.read()) 17 | 18 | 19 | parser = argparse.ArgumentParser(description=( 20 | 'Generate Dockerfiles for all permutations of Python, Mono, and pythonnet ' 21 | 'versions.')) 22 | parser.add_argument( 23 | '--outdir', type=str, default="_dockerfiles", 24 | help='Output directory for Dockerfiles') 25 | parser.add_argument( 26 | '--configfile', type=str, default="config.csv", 27 | help='Comma separated values file with configurations') 28 | parser.add_argument( 29 | '--snippetsdir', type=str, default="snippets", 30 | help='Directory with template snippets') 31 | 32 | args = parser.parse_args() 33 | 34 | outdir = Path(args.outdir) 35 | configfile = Path(args.configfile) 36 | snippetsdir = Path(args.snippetsdir) 37 | assert outdir.is_dir() 38 | assert configfile.is_file() 39 | assert snippetsdir.is_dir() 40 | 41 | with configfile.open(newline='') as csvfile: 42 | configdata = [row for row in csv.DictReader(csvfile)] 43 | 44 | template = get_template(Path("Dockerfile.template")) 45 | snippets = {f.name: get_template(f) for f in snippetsdir.iterdir() if not f.is_dir()} 46 | 47 | for cfg in configdata: 48 | debian_version = cfg["debian_version"] 49 | python_version = cfg["python_version"] 50 | mono_version = cfg["mono_version"] 51 | pythonnet_version = cfg["pythonnet_version"] 52 | 53 | # select and build the right snippets for Mono and Pythonnet 54 | if False: 55 | # This branch never runs but is kept for reference in case we need to 56 | # install from Github "master" again in future. This was necessary when 57 | # 2.4.0 was in pre-release state for a prolonged amount of time. 58 | pythonnet_snippet_name = 'pythonnet-from-github' 59 | else: 60 | pythonnet_snippet_name = 'pythonnet-from-pypi' 61 | pythonnet_snippet = snippets[pythonnet_snippet_name].safe_substitute( 62 | PYTHONNET_VERSION=pythonnet_version) 63 | 64 | mono_snippet = snippets['mono'].safe_substitute(MONO_VERSION=mono_version) 65 | 66 | # build Dockerfile filename and content 67 | fname = ( 68 | f"python{python_version}-mono{mono_version}-pythonnet{pythonnet_version}" 69 | ) 70 | 71 | content = template.safe_substitute( 72 | DEBIAN_VERSION=debian_version, 73 | PYTHON_VERSION=python_version, 74 | MONO_SNIPPET=mono_snippet, 75 | PYTHONNET_SNIPPET=pythonnet_snippet, 76 | ) 77 | # write Dockerfile 78 | outfile = outdir / fname 79 | with outfile.open('w') as out_file: 80 | print(f"Writing {outfile}") 81 | out_file.write(content) 82 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker images with Python + Mono + pythonnet 2 | 3 | Docker images with various combinations of Python, Mono, and pythonnet versions. 4 | 5 | ## Quickstart 6 | 7 | Get a Python shell: 8 | 9 | ``` 10 | $ docker run -it --rm mosthege/pythonnet:python3.11.1-mono6.12-pythonnet3.0.1 python 11 | Python 3.11.1 (main, Dec 8 2022, 00:05:00) [GCC 10.2.1 20210110] on linux 12 | Type "help", "copyright", "credits" or "license" for more information. 13 | >>> 14 | ``` 15 | 16 | Inside the Python shell: 17 | 18 | ``` 19 | >>> import clr 20 | >>> from System import Environment 21 | >>> print(Environment.MachineName) 22 | 79000da3c53a 23 | ``` 24 | 25 | ## Approach 26 | 27 | The method for installing is slightly different for each of the three main components of this image (Python, Mono, pythonnet): 28 | * **Python**: Because an actively maintained and "official" [Dockerhub repository](https://hub.docker.com/_/python/) covering a range of Python versions exists, these Python images are used as base images. 29 | The `-stretch` variant of the Python Docker images is used because the slimmer variants (`-slim` and `-alpine`) do not include the tooling [required](https://github.com/mono/docker/issues/56) for the Mono and pythonnet installs later. 30 | * **Mono** provides [succinct documentation for installing on Debian systems](http://www.mono-project.com/download/#download-lin-debian), including [steps for installing older releases](http://www.mono-project.com/docs/getting-started/install/linux/#accessing-older-releases). 31 | * **pythonnet** is the smallest (by contributor count) of the three project and, therefore, does not come with the luxery of comprehensive installation documentation for a wide range of platforms. 32 | Binary packages only exist for Windows, but installing pythonnet on a Linux based platform with Mono involves building from source. 33 | Gladly, the project's issue tracker contains a wealth of detailed reports of problems and solutions. 34 | 35 | 36 | ## Notes on available versions/tags 37 | 38 | ### Python 39 | 40 | The Python versions included are a subset of those available in the [Python Dockerhub repository](https://hub.docker.com/_/python/), excluding pre-release versions. 41 | The Python Dockerhub repository generally includes the latest stable version of every supported branch of Python (for example `3.5.4` but not `3.5.3`, and none of `3.3.x`). 42 | Currently, there are no abbreviated version tags (e.g. `3.6` pointing at `3.6.4`) since including those would increase the maintenance effort. 43 | 44 | ### Mono 45 | 46 | [Mono versioning](http://www.mono-project.com/docs/about-mono/versioning/) is non-obvious to the newcomer. 47 | I make no claim to understand the details of it and use the [Mono Project's own Docker repository](https://hub.docker.com/r/library/mono/) as guidance for which versions are current. 48 | 49 | ### pythonnet 50 | 51 | The [pythonnet installation instructions](https://github.com/pythonnet/pythonnet/wiki/Installation) recommend an install via `pip install pythonnet`, or via `conda install -c conda-forge pythonnet`. 52 | 53 | In the Docker images here, we install via PyPI/pip. 54 | --------------------------------------------------------------------------------