使用 docker-compose build 时出错:__init__() 得到了一个意外的关键字参数 'interpolate'
getting error while using docker-compose build: __init__() got an unexpected keyword argument 'interpolate'
我是 docker 的新手,在 运行 docker-compose build
命令时出现此错误。
Traceback (most recent call last):
File "/home/ghostface/playground/bootcamp/venv/bin/docker-compose", line 11, in <module>
sys.exit(main())
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/main.py", line 72, in main
command()
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/main.py", line 125, in perform_command
project = project_from_options('.', options)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/command.py", line 76, in project_from_options
environment_file=environment_file
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/command.py", line 135, in get_project
config_data = config.load(config_details, compatibility, interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 411, in load
service_dicts = load_services(config_details, main_file, compatibility, interpolate=interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 510, in load_services
return build_services(service_config)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 491, in build_services
for name, service_dict in service_config.items()
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 491, in <listcomp>
for name, service_dict in service_config.items()
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 483, in build_service
interpolate
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 888, in finalize_service
service_dict['environment'] = resolve_environment(service_dict, environment, interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 687, in resolve_environment
env.update(env_vars_from_file(env_file, interpolate))
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/environment.py", line 42, in env_vars_from_file
env = dotenv.dotenv_values(dotenv_path=filename, encoding='utf-8-sig', interpolate=interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/dotenv/main.py", line 283, in dotenv_values
return DotEnv(f, verbose=verbose, **kwargs).dict()
TypeError: __init__() got an unexpected keyword argument 'interpolate'
docker-compose version
的结果
docker-compose 版本 1.26.0,构建未知
docker-py版本:4.2.1
CPython 版本:3.6.8
OpenSSL 版本:OpenSSL 1.1.1c 2019 年 5 月 28 日
Requirement.txt 文件:
Flask==1.1.1
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.5.2
Flask-Moment==0.9.0
Flask-SQLAlchemy==2.4.0
Flask-WTF==0.14.2
pusher==2.1.4
PyJWT==1.7.1
pylint==2.3.1
python-dotenv==0.10.3
Werkzeug==0.16.1
gunicorn
docker-compose
您容器中的代码使用比 requirements.txt
文件中所列版本更新的 python-dotenv
版本,如 interpolate option was added in v0.11.0.
您需要将 requirements.txt
中的版本更改为 0.11.0
(或最新版本)并重新安装依赖项。
您的容器似乎使用了 virtual environment。您可能需要检查容器中的依赖项是否已正确更新,可以通过 Dockerfile
中的 运行 pip install
或事先在本地 运行 进行更新。
我是 docker 的新手,在 运行 docker-compose build
命令时出现此错误。
Traceback (most recent call last):
File "/home/ghostface/playground/bootcamp/venv/bin/docker-compose", line 11, in <module>
sys.exit(main())
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/main.py", line 72, in main
command()
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/main.py", line 125, in perform_command
project = project_from_options('.', options)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/command.py", line 76, in project_from_options
environment_file=environment_file
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/cli/command.py", line 135, in get_project
config_data = config.load(config_details, compatibility, interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 411, in load
service_dicts = load_services(config_details, main_file, compatibility, interpolate=interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 510, in load_services
return build_services(service_config)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 491, in build_services
for name, service_dict in service_config.items()
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 491, in <listcomp>
for name, service_dict in service_config.items()
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 483, in build_service
interpolate
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 888, in finalize_service
service_dict['environment'] = resolve_environment(service_dict, environment, interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/config.py", line 687, in resolve_environment
env.update(env_vars_from_file(env_file, interpolate))
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/compose/config/environment.py", line 42, in env_vars_from_file
env = dotenv.dotenv_values(dotenv_path=filename, encoding='utf-8-sig', interpolate=interpolate)
File "/home/ghostface/playground/bootcamp/venv/lib/python3.6/site-packages/dotenv/main.py", line 283, in dotenv_values
return DotEnv(f, verbose=verbose, **kwargs).dict()
TypeError: __init__() got an unexpected keyword argument 'interpolate'
docker-compose version
docker-compose 版本 1.26.0,构建未知
docker-py版本:4.2.1
CPython 版本:3.6.8
OpenSSL 版本:OpenSSL 1.1.1c 2019 年 5 月 28 日
Requirement.txt 文件:
Flask==1.1.1
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.5.2
Flask-Moment==0.9.0
Flask-SQLAlchemy==2.4.0
Flask-WTF==0.14.2
pusher==2.1.4
PyJWT==1.7.1
pylint==2.3.1
python-dotenv==0.10.3
Werkzeug==0.16.1
gunicorn
docker-compose
您容器中的代码使用比 requirements.txt
文件中所列版本更新的 python-dotenv
版本,如 interpolate option was added in v0.11.0.
您需要将 requirements.txt
中的版本更改为 0.11.0
(或最新版本)并重新安装依赖项。
您的容器似乎使用了 virtual environment。您可能需要检查容器中的依赖项是否已正确更新,可以通过 Dockerfile
中的 运行 pip install
或事先在本地 运行 进行更新。