diff --git a/Dockerfile b/Dockerfile index 6e36fddb40e..9df78a8262a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,12 @@ -FROM 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/x86_64/docker-17.12.0-ce.tgz" && \ SHA256=692e1c72937f6214b1038def84463018d8e320c8eaf8530546c84c2f8f9c767d; \ @@ -25,44 +16,6 @@ RUN curl -fsSL -o dockerbins.tgz "https://download.docker.com/linux/static/stabl chmod +x /usr/local/bin/docker && \ rm dockerbins.tgz -# Build Python 2.7.13 from source -RUN set -ex; \ - curl -LO https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz && \ - SHA256=a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1; \ - echo "${SHA256} Python-2.7.13.tgz" | sha256sum -c - && \ - tar -xzf Python-2.7.13.tgz; \ - cd Python-2.7.13; \ - ./configure --enable-shared; \ - make; \ - make install; \ - cd ..; \ - rm -rf /Python-2.7.13; \ - rm Python-2.7.13.tgz - -# Build python 3.6 from source -RUN set -ex; \ - curl -LO https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz && \ - SHA256=9de6494314ea199e3633211696735f65; \ - echo "${SHA256} Python-3.6.4.tgz" | md5sum -c - && \ - tar -xzf Python-3.6.4.tgz; \ - cd Python-3.6.4; \ - ./configure --enable-shared; \ - make; \ - make install; \ - cd ..; \ - rm -rf /Python-3.6.4; \ - rm Python-3.6.4.tgz - -# Make libpython findable -ENV LD_LIBRARY_PATH /usr/local/lib - -# Install pip -RUN set -ex; \ - curl -LO https://bootstrap.pypa.io/get-pip.py && \ - SHA256=19dae841a150c86e2a09d475b5eb0602861f2a5b7761ec268049a662dbd2bd0c; \ - echo "${SHA256} get-pip.py" | sha256sum -c - && \ - python get-pip.py - # Python3 requires a valid locale RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen ENV LANG en_US.UTF-8 @@ -83,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"] diff --git a/compose/cli/__init__.py b/compose/cli/__init__.py index 2574a311f24..e69de29bb2d 100644 --- a/compose/cli/__init__.py +++ b/compose/cli/__init__.py @@ -1,49 +0,0 @@ -from __future__ import absolute_import -from __future__ import print_function -from __future__ import unicode_literals - -import os -import subprocess -import sys - -# Attempt to detect https://github.com/docker/compose/issues/4344 -try: - # We don't try importing pip because it messes with package imports - # on some Linux distros (Ubuntu, Fedora) - # https://github.com/docker/compose/issues/4425 - # https://github.com/docker/compose/issues/4481 - # https://github.com/pypa/pip/blob/master/pip/_vendor/__init__.py - env = os.environ.copy() - env[str('PIP_DISABLE_PIP_VERSION_CHECK')] = str('1') - - s_cmd = subprocess.Popen( - # DO NOT replace this call with a `sys.executable` call. It breaks the binary - # distribution (with the binary calling itself recursively over and over). - ['pip', 'freeze'], stderr=subprocess.PIPE, stdout=subprocess.PIPE, - env=env - ) - packages = s_cmd.communicate()[0].splitlines() - dockerpy_installed = len( - list(filter(lambda p: p.startswith(b'docker-py=='), packages)) - ) > 0 - if dockerpy_installed: - from .colors import yellow - print( - yellow('WARNING:'), - "Dependency conflict: an older version of the 'docker-py' package " - "may be polluting the namespace. " - "If you're experiencing crashes, run the following command to remedy the issue:\n" - "pip uninstall docker-py; pip uninstall docker; pip install docker", - file=sys.stderr - ) - -except OSError: - # pip command is not available, which indicates it's probably the binary - # distribution of Compose which is not affected - pass -except UnicodeDecodeError: - # ref: https://github.com/docker/compose/issues/4663 - # This could be caused by a number of things, but it seems to be a - # python 2 + MacOS interaction. It's not ideal to ignore this, but at least - # it doesn't make the program unusable. - pass