mirror of https://github.com/docker/compose.git
commit
4fa296e7e8
|
@ -1,7 +1,7 @@
|
|||
Change log
|
||||
==========
|
||||
|
||||
1.19.0 (2018-01-31)
|
||||
1.19.0 (2018-02-07)
|
||||
-------------------
|
||||
|
||||
### Breaking changes
|
||||
|
|
|
@ -1,13 +1,33 @@
|
|||
FROM alpine:3.4
|
||||
FROM sgerrand/glibc-builder as glibc
|
||||
RUN apt-get install -yq bison
|
||||
|
||||
ENV GLIBC 2.23-r3
|
||||
ENV PKGDIR /pkgdata
|
||||
|
||||
RUN apk update && apk add --no-cache openssl ca-certificates && \
|
||||
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \
|
||||
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/$GLIBC/glibc-$GLIBC.apk && \
|
||||
apk add --no-cache glibc-$GLIBC.apk && rm glibc-$GLIBC.apk && \
|
||||
ln -s /lib/libz.so.1 /usr/glibc-compat/lib/ && \
|
||||
ln -s /lib/libc.musl-x86_64.so.1 /usr/glibc-compat/lib
|
||||
RUN mkdir -p /usr/glibc-compat/etc && touch /usr/glibc-compat/etc/ld.so.conf
|
||||
RUN /builder 2.27 /usr/glibc-compat || true
|
||||
RUN mkdir -p $PKGDIR
|
||||
RUN tar -xf /glibc-bin-2.27.tar.gz -C $PKGDIR
|
||||
RUN rm "$PKGDIR"/usr/glibc-compat/etc/rpc && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/bin && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/sbin && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/lib/gconv && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/lib/getconf && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/lib/audit && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/share && \
|
||||
rm -rf "$PKGDIR"/usr/glibc-compat/var
|
||||
|
||||
|
||||
FROM alpine:3.6
|
||||
|
||||
RUN apk update && apk add --no-cache openssl ca-certificates
|
||||
COPY --from=glibc /pkgdata/ /
|
||||
|
||||
RUN mkdir -p /lib /lib64 /usr/glibc-compat/lib/locale /etc && \
|
||||
ln -s /lib/libz.so.1 /usr/glibc-compat/lib/ && \
|
||||
ln -s /lib/libc.musl-x86_64.so.1 /usr/glibc-compat/lib && \
|
||||
ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2 && \
|
||||
ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 && \
|
||||
ln -s /usr/glibc-compat/etc/ld.so.cache /etc/ld.so.cache
|
||||
|
||||
COPY dist/docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ Installation and documentation
|
|||
|
||||
- Full documentation is available on [Docker's website](https://docs.docker.com/compose/).
|
||||
- If you have any questions, you can talk in real-time with other developers in the #docker-compose IRC channel on Freenode. [Click here to join using IRCCloud.](https://www.irccloud.com/invite?hostname=irc.freenode.net&channel=%23docker-compose)
|
||||
- Code repository for Compose is on [Github](https://github.com/docker/compose)
|
||||
- Code repository for Compose is on [GitHub](https://github.com/docker/compose)
|
||||
- If you find any problems please fill out an [issue](https://github.com/docker/compose/issues/new)
|
||||
|
||||
Contributing
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
|
||||
__version__ = '1.19.0-rc3'
|
||||
__version__ = '1.19.0'
|
||||
|
|
|
@ -849,10 +849,10 @@ class Service(object):
|
|||
override_options['mounts'] = [build_mount(v) for v in container_mounts] or None
|
||||
else:
|
||||
# Workaround for 3.2 format
|
||||
self.options['tmpfs'] = self.options.get('tmpfs') or []
|
||||
override_options['tmpfs'] = self.options.get('tmpfs') or []
|
||||
for m in container_mounts:
|
||||
if m.is_tmpfs:
|
||||
self.options['tmpfs'].append(m.target)
|
||||
override_options['tmpfs'].append(m.target)
|
||||
else:
|
||||
override_options['binds'].append(m.legacy_repr())
|
||||
container_options['volumes'][m.target] = {}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
set -e
|
||||
|
||||
VERSION="1.19.0-rc3"
|
||||
VERSION="1.19.0"
|
||||
IMAGE="docker/compose:$VERSION"
|
||||
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ from compose.config.types import ServicePort
|
|||
from compose.config.types import ServiceSecret
|
||||
from compose.config.types import VolumeFromSpec
|
||||
from compose.config.types import VolumeSpec
|
||||
from compose.const import API_VERSIONS
|
||||
from compose.const import LABEL_CONFIG_HASH
|
||||
from compose.const import LABEL_ONE_OFF
|
||||
from compose.const import LABEL_PROJECT
|
||||
|
@ -601,6 +602,25 @@ class ServiceTest(unittest.TestCase):
|
|||
}
|
||||
assert config_dict == expected
|
||||
|
||||
def test_config_hash_matches_label(self):
|
||||
self.mock_client.inspect_image.return_value = {'Id': 'abcd'}
|
||||
service = Service(
|
||||
'foo',
|
||||
image='example.com/foo',
|
||||
client=self.mock_client,
|
||||
network_mode=NetworkMode('bridge'),
|
||||
networks={'bridge': {}},
|
||||
links=[(Service('one', client=self.mock_client), 'one')],
|
||||
volumes_from=[VolumeFromSpec(Service('two', client=self.mock_client), 'rw', 'service')]
|
||||
)
|
||||
config_hash = service.config_hash
|
||||
|
||||
for api_version in set(API_VERSIONS.values()):
|
||||
self.mock_client.api_version = api_version
|
||||
assert service._get_container_create_options({}, 1)['labels'][LABEL_CONFIG_HASH] == (
|
||||
config_hash
|
||||
)
|
||||
|
||||
def test_remove_image_none(self):
|
||||
web = Service('web', image='example', client=self.mock_client)
|
||||
assert not web.remove_image(ImageType.none)
|
||||
|
|
Loading…
Reference in New Issue