Skip to content

Commit

Permalink
Merge pull request #6222 from docker/bump-1.23.0-rc1
Browse files Browse the repository at this point in the history
Bump 1.23.0-rc1
  • Loading branch information
shin- committed Sep 26, 2018
2 parents e20d808 + 320e481 commit c5d5d42
Show file tree
Hide file tree
Showing 57 changed files with 960 additions and 535 deletions.
45 changes: 8 additions & 37 deletions .circleci/config.yml
Expand Up @@ -2,7 +2,7 @@ version: 2
jobs:
test:
macos:
xcode: "8.3.3"
xcode: "9.4.1"
steps:
- checkout
- run:
Expand All @@ -13,30 +13,29 @@ jobs:
command: sudo pip install --upgrade tox==2.1.1
- run:
name: unit tests
command: tox -e py27,py36 -- tests/unit
command: tox -e py27,py36,py37 -- tests/unit

build-osx-binary:
macos:
xcode: "8.3.3"
xcode: "9.4.1"
steps:
- checkout
- run:
name: upgrade python tools
command: sudo pip install --upgrade pip virtualenv
- run:
name: setup script
command: ./script/setup/osx
command: DEPLOYMENT_TARGET=10.11 ./script/setup/osx
- run:
name: build script
command: ./script/build/osx
- store_artifacts:
path: dist/docker-compose-Darwin-x86_64
destination: docker-compose-Darwin-x86_64
# - deploy:
# name: Deploy binary to bintray
# command: |
# OS_NAME=Darwin PKG_NAME=osx ./script/circle/bintray-deploy.sh

- deploy:
name: Deploy binary to bintray
command: |
OS_NAME=Darwin PKG_NAME=osx ./script/circle/bintray-deploy.sh
build-linux-binary:
machine:
Expand All @@ -54,28 +53,6 @@ jobs:
command: |
OS_NAME=Linux PKG_NAME=linux ./script/circle/bintray-deploy.sh
trigger-osx-binary-deploy:
# We use a separate repo to build OSX binaries meant for distribution
# with support for OSSX 10.11 (xcode 7). This job triggers a build on
# that repo.
docker:
- image: alpine:3.6

steps:
- run:
name: install curl
command: apk update && apk add curl

- run:
name: API trigger
command: |
curl -X POST -H "Content-Type: application/json" -d "{\
\"build_parameters\": {\
\"COMPOSE_BRANCH\": \"${CIRCLE_BRANCH}\"\
}\
}" https://circleci.com/api/v1.1/project/github/docker/compose-osx-release?circle-token=${OSX_RELEASE_TOKEN} \
> /dev/null
workflows:
version: 2
Expand All @@ -84,9 +61,3 @@ workflows:
- test
- build-linux-binary
- build-osx-binary
- trigger-osx-binary-deploy:
filters:
branches:
only:
- master
- /bump-.*/
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -13,3 +13,4 @@ compose/GITSHA
*.swp
.DS_Store
.cache
.idea
66 changes: 63 additions & 3 deletions CHANGELOG.md
@@ -1,6 +1,66 @@
Change log
==========

1.23.0 (2018-10-10)
-------------------

### Important note

The default naming scheme for containers created by Compose in this version
has changed from `<project>_<service>_<index>` to
`<project>_<service>_<index>_<slug>`, where `<slug>` is a randomly-generated
hexadecimal string. Please make sure to update scripts relying on the old
naming scheme accordingly before upgrading.

### Features

- Logs for containers restarting after a crash will now appear in the output
of the `up` and `logs` commands.

- Added `--hash` option to the `docker-compose config` command, allowing users
to print a hash string for each service's configuration to facilitate rolling
updates.

- Output for the `pull` command now reports status / progress even when pulling
multiple images in parallel.

- For images with multiple names, Compose will now attempt to match the one
present in the service configuration in the output of the `images` command.

### Bugfixes

- Parallel `run` commands for the same service will no longer fail due to name
collisions.

- Fixed an issue where paths longer than 260 characters on Windows clients would
cause `docker-compose build` to fail.

- Fixed a bug where attempting to mount `/var/run/docker.sock` with
Docker Desktop for Windows would result in failure.

- The `--project-directory` option is now used by Compose to determine where to
look for the `.env` file.

- `docker-compose build` no longer fails when attempting to pull an image with
credentials provided by the gcloud credential helper.

- Fixed the `--exit-code-from` option in `docker-compose up` to always report
the actual exit code even when the watched container isn't the cause of the
exit.

- Fixed a bug that caused hash configuration with multiple networks to be
inconsistent, causing some services to be unnecessarily restarted.

- Fixed a pipe handling issue when using the containerized version of Compose.

- Fixed a bug causing `external: false` entries in the Compose file to be
printed as `external: true` in the output of `docker-compose config`

### Miscellaneous

- The `zsh` completion script has been updated with new options, and no
longer suggests container names where service names are expected.

1.22.0 (2018-07-17)
-------------------

Expand Down Expand Up @@ -60,7 +120,7 @@ Change log

### Bugfixes

- Fixed a bug where the ip_range attirbute in IPAM configs was prevented
- Fixed a bug where the ip_range attribute in IPAM configs was prevented
from passing validation

1.21.1 (2018-04-27)
Expand Down Expand Up @@ -285,7 +345,7 @@ Change log
preventing Compose from recovering volume data from previous containers for
anonymous volumes

- Added limit for number of simulatenous parallel operations, which should
- Added limit for number of simultaneous parallel operations, which should
prevent accidental resource exhaustion of the server. Default is 64 and
can be configured using the `COMPOSE_PARALLEL_LIMIT` environment variable

Expand Down Expand Up @@ -583,7 +643,7 @@ Change log
### Bugfixes

- Volumes specified through the `--volume` flag of `docker-compose run` now
complement volumes declared in the service's defintion instead of replacing
complement volumes declared in the service's definition instead of replacing
them

- Fixed a bug where using multiple Compose files would unset the scale value
Expand Down
46 changes: 6 additions & 40 deletions Dockerfile.armhf
@@ -1,55 +1,21 @@
FROM armhf/debian:wheezy
FROM python:3.6

RUN set -ex; \
apt-get update -qq; \
apt-get install -y \
locales \
gcc \
make \
zlib1g \
zlib1g-dev \
libssl-dev \
git \
ca-certificates \
curl \
libsqlite3-dev \
libbz2-dev \
; \
rm -rf /var/lib/apt/lists/*
python-dev \
git

RUN curl -fsSL -o dockerbins.tgz "https://download.docker.com/linux/static/stable/armhf/docker-17.12.0-ce.tgz" && \
SHA256=f8de6378dad825b9fd5c3c2f949e791d22f918623c27a72c84fd6975a0e5d0a2; \
echo "${SHA256} dockerbins.tgz" | sha256sum -c - && \
tar xvf dockerbins.tgz docker/docker --strip-components 1 && \
mv docker /usr/local/bin/docker && \
chmod +x /usr/local/bin/docker && \
rm dockerbins.tgz

# Build Python 2.7.13 from source
RUN set -ex; \
curl -L https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz | tar -xz; \
cd Python-2.7.13; \
./configure --enable-shared; \
make; \
make install; \
cd ..; \
rm -rf /Python-2.7.13

# Build python 3.6 from source
RUN set -ex; \
curl -L https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz | tar -xz; \
cd Python-3.6.4; \
./configure --enable-shared; \
make; \
make install; \
cd ..; \
rm -rf /Python-3.6.4

# Make libpython findable
ENV LD_LIBRARY_PATH /usr/local/lib

# Install pip
RUN set -ex; \
curl -L https://bootstrap.pypa.io/get-pip.py | python

# Python3 requires a valid locale
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
Expand All @@ -70,4 +36,4 @@ RUN tox --notest
ADD . /code/
RUN chown -R user /code/

ENTRYPOINT ["/code/.tox/py27/bin/docker-compose"]
ENTRYPOINT ["/code/.tox/py36/bin/docker-compose"]
2 changes: 1 addition & 1 deletion Dockerfile.run
Expand Up @@ -4,7 +4,7 @@ ENV GLIBC 2.27-r0
ENV DOCKERBINS_SHA 1270dce1bd7e1838d62ae21d2505d87f16efc1d9074645571daaefdfd0c14054

RUN apk update && apk add --no-cache openssl ca-certificates curl libgcc && \
curl -fsSL -o /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \
curl -fsSL -o /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
curl -fsSL -o glibc-$GLIBC.apk https://github.com/sgerrand/alpine-pkg-glibc/releases/download/$GLIBC/glibc-$GLIBC.apk && \
apk add --no-cache glibc-$GLIBC.apk && \
ln -s /lib/libz.so.1 /usr/glibc-compat/lib/ && \
Expand Down
3 changes: 2 additions & 1 deletion Jenkinsfile
Expand Up @@ -74,10 +74,11 @@ buildImage()
def testMatrix = [failFast: true]
def docker_versions = get_versions(2)

for (int i = 0 ;i < docker_versions.length ; i++) {
for (int i = 0; i < docker_versions.length; i++) {
def dockerVersion = docker_versions[i]
testMatrix["${dockerVersion}_py27"] = runTests([dockerVersions: dockerVersion, pythonVersions: "py27"])
testMatrix["${dockerVersion}_py36"] = runTests([dockerVersions: dockerVersion, pythonVersions: "py36"])
testMatrix["${dockerVersion}_py37"] = runTests([dockerVersions: dockerVersion, pythonVersions: "py37"])
}

parallel(testMatrix)
2 changes: 1 addition & 1 deletion appveyor.yml
Expand Up @@ -10,7 +10,7 @@ install:
build: false

test_script:
- "tox -e py27,py36 -- tests/unit"
- "tox -e py27,py36,py37 -- tests/unit"
- ps: ".\\script\\build\\windows.ps1"

artifacts:
Expand Down
2 changes: 1 addition & 1 deletion compose/__init__.py
@@ -1,4 +1,4 @@
from __future__ import absolute_import
from __future__ import unicode_literals

__version__ = '1.22.0'
__version__ = '1.23.0-rc1'
10 changes: 10 additions & 0 deletions compose/cli/log_printer.py
Expand Up @@ -210,10 +210,15 @@ def start_producer_thread(thread_args):


def watch_events(thread_map, event_stream, presenters, thread_args):
crashed_containers = set()
for event in event_stream:
if event['action'] == 'stop':
thread_map.pop(event['id'], None)

if event['action'] == 'die':
thread_map.pop(event['id'], None)
crashed_containers.add(event['id'])

if event['action'] != 'start':
continue

Expand All @@ -223,6 +228,11 @@ def watch_events(thread_map, event_stream, presenters, thread_args):
# Container was stopped and started, we need a new thread
thread_map.pop(event['id'], None)

# Container crashed so we should reattach to it
if event['id'] in crashed_containers:
event['container'].attach_log_stream()
crashed_containers.remove(event['id'])

thread_map[event['id']] = build_thread(
event['container'],
next(presenters),
Expand Down

0 comments on commit c5d5d42

Please sign in to comment.