mirror of
https://github.com/docker/compose.git
synced 2025-07-29 00:24:12 +02:00
Merge branch 'master' into 1.27.x
This commit is contained in:
commit
4d8d0769a4
@ -36,6 +36,8 @@ Change log
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
- Drop support for Python 2.7
|
||||
|
||||
- Bump `docker-py` to 4.3.1
|
||||
|
||||
- Bump `tox` to 3.19.0
|
||||
@ -44,6 +46,13 @@ Change log
|
||||
|
||||
- Add script for docs syncronization
|
||||
|
||||
1.26.2 (2020-07-02)
|
||||
-------------------
|
||||
|
||||
### Bugs
|
||||
|
||||
- Enforce `docker-py` 4.2.2 as minimum version when installing with pip
|
||||
|
||||
1.26.1 (2020-06-30)
|
||||
-------------------
|
||||
|
||||
|
@ -1304,6 +1304,7 @@ def run_one_off_container(container_options, project, service, options, toplevel
|
||||
native_builder = toplevel_environment.get_boolean('COMPOSE_DOCKER_CLI_BUILD')
|
||||
detach = options.get('--detach')
|
||||
use_network_aliases = options.get('--use-aliases')
|
||||
service.scale_num = 1
|
||||
containers = project.up(
|
||||
service_names=[service.name],
|
||||
start_deps=not options['--no-deps'],
|
||||
|
@ -224,8 +224,6 @@ class ConfigFile(namedtuple('_ConfigFile', 'filename config')):
|
||||
|
||||
if version.startswith("1"):
|
||||
version = V1
|
||||
else:
|
||||
version = VERSION
|
||||
|
||||
if version == V1:
|
||||
raise ConfigurationError(
|
||||
@ -441,6 +439,8 @@ def load_mapping(config_files, get_func, entity_type, working_dir=None):
|
||||
|
||||
def validate_external(entity_type, name, config, version):
|
||||
for k in config.keys():
|
||||
if entity_type == 'Network' and k == 'driver':
|
||||
continue
|
||||
if k not in ['external', 'name']:
|
||||
raise ConfigurationError(
|
||||
"{} {} declared as external but specifies additional attributes "
|
||||
|
@ -24,7 +24,7 @@ SECRETS_PATH = '/run/secrets'
|
||||
WINDOWS_LONGPATH_PREFIX = '\\\\?\\'
|
||||
|
||||
COMPOSEFILE_V1 = ComposeVersion('1')
|
||||
COMPOSE_SPEC = ComposeVersion('3')
|
||||
COMPOSE_SPEC = ComposeVersion('3.9')
|
||||
|
||||
# minimum DOCKER ENGINE API version needed to support
|
||||
# features for each compose schema version
|
||||
|
@ -311,12 +311,12 @@ class Project:
|
||||
return 1 if scale is None else scale
|
||||
|
||||
replicas = deploy_dict.get('replicas', None)
|
||||
if scale and replicas:
|
||||
if scale is not None and replicas is not None:
|
||||
raise ConfigurationError(
|
||||
"Both service.scale and service.deploy.replicas are set."
|
||||
" Only one of them must be set."
|
||||
)
|
||||
if replicas:
|
||||
if replicas is not None:
|
||||
scale = replicas
|
||||
if scale is None:
|
||||
return 1
|
||||
|
@ -284,7 +284,7 @@ services:
|
||||
|
||||
output = yaml.safe_load(result.stdout)
|
||||
expected = {
|
||||
'version': str(VERSION),
|
||||
'version': '2',
|
||||
'volumes': {'data': {'driver': 'local'}},
|
||||
'networks': {'front': {}},
|
||||
'services': {
|
||||
@ -308,7 +308,7 @@ services:
|
||||
self.base_dir = 'tests/fixtures/restart'
|
||||
result = self.dispatch(['config'])
|
||||
assert yaml.safe_load(result.stdout) == {
|
||||
'version': str(VERSION),
|
||||
'version': '2',
|
||||
'services': {
|
||||
'never': {
|
||||
'image': 'busybox',
|
||||
@ -354,12 +354,12 @@ services:
|
||||
result = self.dispatch(['config'])
|
||||
json_result = yaml.safe_load(result.stdout)
|
||||
assert json_result == {
|
||||
'version': str(VERSION),
|
||||
'version': '2.4',
|
||||
'services': {
|
||||
'web': {
|
||||
'command': 'true',
|
||||
'image': 'alpine:latest',
|
||||
'ports': [{'target': 5643}, {'target': 9999}]
|
||||
'ports': ['5643/tcp', '9999/tcp']
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -369,12 +369,12 @@ services:
|
||||
result = self.dispatch(['--env-file', '.env2', 'config'])
|
||||
json_result = yaml.safe_load(result.stdout)
|
||||
assert json_result == {
|
||||
'version': str(VERSION),
|
||||
'version': '2.4',
|
||||
'services': {
|
||||
'web': {
|
||||
'command': 'false',
|
||||
'image': 'alpine:latest',
|
||||
'ports': [{'target': 5644}, {'target': 9998}]
|
||||
'ports': ['5644/tcp', '9998/tcp']
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -384,12 +384,12 @@ services:
|
||||
result = self.dispatch(['--project-directory', 'alt/', 'config'])
|
||||
json_result = yaml.safe_load(result.stdout)
|
||||
assert json_result == {
|
||||
'version': str(VERSION),
|
||||
'version': '2.4',
|
||||
'services': {
|
||||
'web': {
|
||||
'command': 'echo uwu',
|
||||
'image': 'alpine:3.10.1',
|
||||
'ports': [{'target': 3341}, {'target': 4449}]
|
||||
'ports': ['3341/tcp', '4449/tcp']
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -501,7 +501,7 @@ services:
|
||||
self.base_dir = 'tests/fixtures/v3-full'
|
||||
result = self.dispatch(['config'])
|
||||
assert yaml.safe_load(result.stdout) == {
|
||||
'version': str(VERSION),
|
||||
'version': '3.5',
|
||||
'volumes': {
|
||||
'foobar': {
|
||||
'labels': {
|
||||
|
@ -160,25 +160,20 @@ class ConfigTest(unittest.TestCase):
|
||||
}
|
||||
|
||||
def test_valid_versions(self):
|
||||
for version in ['2', '2.0']:
|
||||
cfg = config.load(
|
||||
build_config_details({
|
||||
'services': {
|
||||
'foo': {'image': 'busybox'},
|
||||
'bar': {'image': 'busybox', 'environment': ['FOO=1']},
|
||||
}
|
||||
})
|
||||
)
|
||||
assert cfg.version == VERSION
|
||||
|
||||
for version in ['2', '2.0', '2.1', '2.2', '2.3',
|
||||
'3', '3.0', '3.1', '3.2', '3.3', '3.4', '3.5', '3.6', '3.7', '3.8']:
|
||||
cfg = config.load(build_config_details({'version': version}))
|
||||
assert cfg.version == VERSION
|
||||
|
||||
cfg = config.load(build_config_details({'version': '2.1'}))
|
||||
assert cfg.version == VERSION
|
||||
|
||||
cfg = config.load(build_config_details({'version': '2.2'}))
|
||||
assert cfg.version == VERSION
|
||||
|
||||
cfg = config.load(build_config_details({'version': '2.3'}))
|
||||
assert cfg.version == VERSION
|
||||
|
||||
for version in ['3', '3.0']:
|
||||
cfg = config.load(build_config_details({'version': version}))
|
||||
assert cfg.version == VERSION
|
||||
|
||||
cfg = config.load(build_config_details({'version': '3.1'}))
|
||||
assert cfg.version == VERSION
|
||||
assert cfg.version == version
|
||||
|
||||
def test_v1_file_version(self):
|
||||
cfg = config.load(build_config_details({'web': {'image': 'busybox'}}))
|
||||
|
Loading…
x
Reference in New Issue
Block a user