我想在测试中使用不同的Python版本。我希望有3个用于Python 3.6、Python 3.7和Python 3.8的Docker容器在运行,并且我希望命令python3.6
、python3.7
和python3.8
能够在环境中访问。
如果它还可以将这些容器与python
命令关联起来,这也会有所帮助。
我想您的意思是希望运行3个docker容器,每个容器都有不同的Python版本。并且您希望从主机为每个python容器执行命令。
您可以使用以下脚本来完成此操作:
docker-compase.yml
创建一个包含以下内容的docker-compose.yml文件:
version: '3.9'
services:
python36:
image: python:3.6.14-buster
container_name: python36
working_dir: /app
volumes:
- ./app:/app
command: ["sleep", "30d"]
python37:
image: python:3.7.11-buster
container_name: python37
working_dir: /app
volumes:
- ./app:/app
command: [ "sleep", "30d" ]
python38:
image: python:3.8.11-buster
container_name: python38
working_dir: /app
volumes:
- ./app:/app
command: [ "sleep", "30d" ]
要运行的python脚本在名为的文件夹中/应用程序创建一个名为version.py 的文件
import sys
print(sys.version)
主机上的命令
在为所有三个容器运行version.py的主机上创建一个Bash脚本。称之为run_command.sh(当然还有"chmod 755"(
#!/bin/bash
docker exec -it python36 python version.py
docker exec -it python37 python version.py
docker exec -it python38 python version.py
使用运行
./run_command.sh
输出
输出:
$ ./run_command.sh
3.6.14 (default, Jun 29 2021, 21:23:13)
[GCC 8.3.0]
3.7.11 (default, Jun 29 2021, 20:31:06)
[GCC 8.3.0]
3.8.11 (default, Jun 29 2021, 19:54:56)
[GCC 8.3.0]