Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
- repo: git://github.com/pre-commit/pre-commit-hooks
sha: 'v0.4.2'
hooks:
- id: check-added-large-files
- id: check-docstring-first
- id: check-merge-conflict
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: flake8
- id: name-tests-test
exclude: 'tests/integration/testcases.py'
- id: requirements-txt-fixer
- id: trailing-whitespace
- repo: git://github.com/asottile/reorder_python_imports
sha: 3d86483455ab5bd06cc1069fdd5ac57be5463f10
hooks:
- id: reorder-python-imports
6 changes: 2 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ The highlights:
- There is a new `fig restart` command which restarts a service's containers.

- Fig creates multiple containers in service by appending a number to the service name (e.g. `db_1`, `db_2`, etc). As a convenience, Fig will now give the first container an alias of the service name (e.g. `db`).

This link alias is also a valid hostname and added to `/etc/hosts` so you can connect to linked services using their hostname. For example, instead of resolving the environment variables `DB_PORT_5432_TCP_ADDR` and `DB_PORT_5432_TCP_PORT`, you could just use the hostname `db` and port `5432` directly.

- Volume definitions now support `ro` mode, expanding `~` and expanding environment variables.
Expand Down Expand Up @@ -250,7 +250,7 @@ Thanks @ryanbrainard and @d11wtq!
------------------

- Fig now starts links when you run `fig run` or `fig up`.

For example, if you have a `web` service which depends on a `db` service, `fig run web ...` will start the `db` service.

- Environment variables can now be resolved from the environment that Fig is running in. Just specify it as a blank variable in your `fig.yml` and, if set, it'll be resolved:
Expand Down Expand Up @@ -410,5 +410,3 @@ Big thanks to @tomstuart, @EnTeQuAk, @schickling, @aronasorman and @GeoffreyPlit
------------------

Initial release.


3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ RUN set -ex; \
curl \
lxc \
iptables \
libsqlite3-dev \
; \
rm -rf /var/lib/apt/lists/*

Expand Down Expand Up @@ -68,6 +69,8 @@ RUN pip install -r requirements.txt
ADD requirements-dev.txt /code/
RUN pip install -r requirements-dev.txt

RUN pip install tox==2.1.1

ADD . /code/
RUN python setup.py install

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,4 @@ Want to help build Compose? Check out our [contributing documentation](https://g
Releasing
---------

Releases are built by maintainers, following an outline of the [release process](https://github.com/docker/compose/blob/master/RELEASE_PROCESS.md).
Releases are built by maintainers, following an outline of the [release process](https://github.com/docker/compose/blob/master/RELEASE_PROCESS.md).
19 changes: 12 additions & 7 deletions compose/cli/command.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
from __future__ import unicode_literals
from __future__ import absolute_import
from requests.exceptions import ConnectionError, SSLError
from __future__ import unicode_literals

import logging
import os
import re

import six
from requests.exceptions import ConnectionError
from requests.exceptions import SSLError

from . import errors
from . import verbose_proxy
from .. import __version__
from .. import config
from ..project import Project
from ..service import ConfigError
from .docopt_command import DocoptCommand
from .utils import call_silently, is_mac, is_ubuntu
from .docker_client import docker_client
from . import verbose_proxy
from . import errors
from .. import __version__
from .docopt_command import DocoptCommand
from .utils import call_silently
from .utils import is_mac
from .utils import is_ubuntu

log = logging.getLogger(__name__)

Expand Down
5 changes: 3 additions & 2 deletions compose/cli/docker_client.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import os
import ssl

from docker import Client
from docker import tls
import ssl
import os


def docker_client():
Expand Down
8 changes: 5 additions & 3 deletions compose/cli/docopt_command.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from __future__ import unicode_literals
from __future__ import absolute_import
import sys
from __future__ import unicode_literals

import sys
from inspect import getdoc
from docopt import docopt, DocoptExit

from docopt import docopt
from docopt import DocoptExit


def docopt_full_help(docstring, *args, **kwargs):
Expand Down
1 change: 1 addition & 0 deletions compose/cli/errors.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import absolute_import

from textwrap import dedent


Expand Down
4 changes: 3 additions & 1 deletion compose/cli/formatter.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from __future__ import unicode_literals
from __future__ import absolute_import
from __future__ import unicode_literals

import os

import texttable


Expand Down
6 changes: 3 additions & 3 deletions compose/cli/log_printer.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from __future__ import unicode_literals
from __future__ import absolute_import
import sys
from __future__ import unicode_literals

import sys
from itertools import cycle

from .multiplexer import Multiplexer
from . import colors
from .multiplexer import Multiplexer
from .utils import split_buffer


Expand Down
18 changes: 11 additions & 7 deletions compose/cli/main.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
from __future__ import print_function
from __future__ import unicode_literals
from inspect import getdoc
from operator import attrgetter

import logging
import re
import signal
import sys
from inspect import getdoc
from operator import attrgetter

from docker.errors import APIError
import dockerpty
from docker.errors import APIError

from .. import __version__
from .. import legacy
from ..const import DEFAULT_TIMEOUT
from ..project import NoSuchService, ConfigurationError
from ..service import BuildError, NeedsBuildError
from ..config import parse_environment
from ..const import DEFAULT_TIMEOUT
from ..progress_stream import StreamOutputError
from ..project import ConfigurationError
from ..project import NoSuchService
from ..service import BuildError
from ..service import NeedsBuildError
from .command import Command
from .docopt_command import NoSuchCommand
from .errors import UserError
from .formatter import Formatter
from .log_printer import LogPrinter
from .utils import yesno, get_version_info
from .utils import get_version_info
from .utils import yesno

log = logging.getLogger(__name__)
console_handler = logging.StreamHandler(sys.stderr)
Expand Down
1 change: 1 addition & 0 deletions compose/cli/multiplexer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from __future__ import absolute_import

from threading import Thread

try:
Expand Down
10 changes: 6 additions & 4 deletions compose/cli/utils.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
from __future__ import unicode_literals
from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals

from .. import __version__
import datetime
from docker import version as docker_py_version
import os
import platform
import subprocess
import ssl
import subprocess

from docker import version as docker_py_version

from .. import __version__


def yesno(prompt, default=None):
Expand Down
3 changes: 1 addition & 2 deletions compose/cli/verbose_proxy.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@

import functools
from itertools import chain
import logging
import pprint
from itertools import chain

import six

Expand Down
19 changes: 9 additions & 10 deletions compose/config/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from .config import (
DOCKER_CONFIG_KEYS,
ConfigDetails,
ConfigurationError,
find,
load,
parse_environment,
merge_environment,
get_service_name_from_net,
) # flake8: noqa
# flake8: noqa
from .config import ConfigDetails
from .config import ConfigurationError
from .config import DOCKER_CONFIG_KEYS
from .config import find
from .config import get_service_name_from_net
from .config import load
from .config import merge_environment
from .config import parse_environment
22 changes: 9 additions & 13 deletions compose/config/config.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,19 @@
import logging
import os
import sys
import yaml
from collections import namedtuple
import six

from compose.cli.utils import find_candidates_in_parent_dirs
import six
import yaml

from .errors import CircularReference
from .errors import ComposeFileNotFound
from .errors import ConfigurationError
from .interpolation import interpolate_environment_variables
from .errors import (
ConfigurationError,
CircularReference,
ComposeFileNotFound,
)
from .validation import (
validate_against_schema,
validate_service_names,
validate_top_level_object
)
from .validation import validate_against_schema
from .validation import validate_service_names
from .validation import validate_top_level_object
from compose.cli.utils import find_candidates_in_parent_dirs


DOCKER_CONFIG_KEYS = [
Expand Down
3 changes: 1 addition & 2 deletions compose/config/interpolation.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import logging
import os
from string import Template

import six

from .errors import ConfigurationError

import logging
log = logging.getLogger(__name__)


Expand Down
8 changes: 5 additions & 3 deletions compose/config/validation.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from functools import wraps
import json
import os
from functools import wraps

from docker.utils.ports import split_port
import json
from jsonschema import Draft4Validator, FormatChecker, ValidationError
from jsonschema import Draft4Validator
from jsonschema import FormatChecker
from jsonschema import ValidationError

from .errors import ConfigurationError

Expand Down
8 changes: 5 additions & 3 deletions compose/container.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from __future__ import unicode_literals
from __future__ import absolute_import
from __future__ import unicode_literals

import six
from functools import reduce

from .const import LABEL_CONTAINER_NUMBER, LABEL_SERVICE
import six

from .const import LABEL_CONTAINER_NUMBER
from .const import LABEL_SERVICE


class Container(object):
Expand Down
3 changes: 2 additions & 1 deletion compose/legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
import re

from .const import LABEL_VERSION
from .container import get_container_name, Container
from .container import Container
from .container import get_container_name


log = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion compose/progress_stream.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import codecs
import json
import os
import codecs


class StreamOutputError(Exception):
Expand Down
13 changes: 9 additions & 4 deletions compose/project.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
from __future__ import unicode_literals
from __future__ import absolute_import
from functools import reduce
from __future__ import unicode_literals

import logging
from functools import reduce

from docker.errors import APIError

from .config import get_service_name_from_net, ConfigurationError
from .const import DEFAULT_TIMEOUT, LABEL_PROJECT, LABEL_SERVICE, LABEL_ONE_OFF
from .config import ConfigurationError
from .config import get_service_name_from_net
from .const import DEFAULT_TIMEOUT
from .const import LABEL_ONE_OFF
from .const import LABEL_PROJECT
from .const import LABEL_SERVICE
from .container import Container
from .legacy import check_for_legacy_containers
from .service import Service
Expand Down
Loading