mirror of https://github.com/docker/compose.git
Merge pull request #1957 from aanand/stub-run-on-windows
WIP: Build Windows binary
This commit is contained in:
commit
aa70209ade
|
@ -8,7 +8,6 @@ import sys
|
|||
from inspect import getdoc
|
||||
from operator import attrgetter
|
||||
|
||||
import dockerpty
|
||||
from docker.errors import APIError
|
||||
from requests.exceptions import ReadTimeout
|
||||
|
||||
|
@ -31,6 +30,11 @@ from .log_printer import LogPrinter
|
|||
from .utils import get_version_info
|
||||
from .utils import yesno
|
||||
|
||||
WINDOWS = (sys.platform == 'win32')
|
||||
|
||||
if not WINDOWS:
|
||||
import dockerpty
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
console_handler = logging.StreamHandler(sys.stderr)
|
||||
|
||||
|
@ -337,6 +341,14 @@ class TopLevelCommand(Command):
|
|||
"""
|
||||
service = project.get_service(options['SERVICE'])
|
||||
|
||||
detach = options['-d']
|
||||
|
||||
if WINDOWS and not detach:
|
||||
raise UserError(
|
||||
"Interactive mode is not yet supported on Windows.\n"
|
||||
"Please pass the -d flag when using `docker-compose run`."
|
||||
)
|
||||
|
||||
if options['--allow-insecure-ssl']:
|
||||
log.warn(INSECURE_SSL_WARNING)
|
||||
|
||||
|
@ -351,7 +363,7 @@ class TopLevelCommand(Command):
|
|||
)
|
||||
|
||||
tty = True
|
||||
if options['-d'] or options['-T'] or not sys.stdin.isatty():
|
||||
if detach or options['-T'] or not sys.stdin.isatty():
|
||||
tty = False
|
||||
|
||||
if options['COMMAND']:
|
||||
|
@ -362,8 +374,8 @@ class TopLevelCommand(Command):
|
|||
container_options = {
|
||||
'command': command,
|
||||
'tty': tty,
|
||||
'stdin_open': not options['-d'],
|
||||
'detach': options['-d'],
|
||||
'stdin_open': not detach,
|
||||
'detach': detach,
|
||||
}
|
||||
|
||||
if options['-e']:
|
||||
|
@ -409,7 +421,7 @@ class TopLevelCommand(Command):
|
|||
|
||||
raise e
|
||||
|
||||
if options['-d']:
|
||||
if detach:
|
||||
service.start_container(container)
|
||||
print(container.name)
|
||||
else:
|
||||
|
|
|
@ -66,7 +66,12 @@ def call_silently(*args, **kwargs):
|
|||
Like subprocess.call(), but redirects stdout and stderr to /dev/null.
|
||||
"""
|
||||
with open(os.devnull, 'w') as shutup:
|
||||
return subprocess.call(*args, stdout=shutup, stderr=shutup, **kwargs)
|
||||
try:
|
||||
return subprocess.call(*args, stdout=shutup, stderr=shutup, **kwargs)
|
||||
except WindowsError:
|
||||
# On Windows, subprocess.call() can still raise exceptions. Normalize
|
||||
# to POSIXy behaviour by returning a nonzero exit code.
|
||||
return 1
|
||||
|
||||
|
||||
def is_mac():
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
$ErrorActionPreference = "Stop"
|
||||
Set-PSDebug -trace 1
|
||||
|
||||
# Remove virtualenv
|
||||
if (Test-Path venv) {
|
||||
Remove-Item -Recurse -Force .\venv
|
||||
}
|
||||
|
||||
# Remove .pyc files
|
||||
Get-ChildItem -Recurse -Include *.pyc | foreach ($_) { Remove-Item $_.FullName }
|
||||
|
||||
# Create virtualenv
|
||||
virtualenv .\venv
|
||||
|
||||
# Install dependencies
|
||||
.\venv\Scripts\easy_install "http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win32-py2.7.exe/download"
|
||||
.\venv\Scripts\pip install -r requirements.txt
|
||||
.\venv\Scripts\pip install -r requirements-build.txt
|
||||
.\venv\Scripts\pip install .
|
||||
|
||||
# Build binary
|
||||
.\venv\Scripts\pyinstaller .\docker-compose.spec
|
||||
Move-Item -Force .\dist\docker-compose .\dist\docker-compose-Windows-x86_64.exe
|
||||
.\dist\docker-compose-Windows-x86_64.exe --version
|
Loading…
Reference in New Issue