mirror of
https://github.com/docker/compose.git
synced 2025-07-23 13:45:00 +02:00
Merge pull request #511 from bfirsh/support_entrypoint
Add support for entrypoint to "fig run"
This commit is contained in:
commit
ed12f2539c
@ -258,10 +258,11 @@ class TopLevelCommand(Command):
|
|||||||
Options:
|
Options:
|
||||||
-d Detached mode: Run container in the background, print
|
-d Detached mode: Run container in the background, print
|
||||||
new container name.
|
new container name.
|
||||||
|
--entrypoint Override the entrypoint of the image.
|
||||||
|
--no-deps Don't start linked services.
|
||||||
|
--rm Remove container after run. Ignored in detached mode.
|
||||||
-T Disable pseudo-tty allocation. By default `fig run`
|
-T Disable pseudo-tty allocation. By default `fig run`
|
||||||
allocates a TTY.
|
allocates a TTY.
|
||||||
--rm Remove container after run. Ignored in detached mode.
|
|
||||||
--no-deps Don't start linked services.
|
|
||||||
"""
|
"""
|
||||||
service = project.get_service(options['SERVICE'])
|
service = project.get_service(options['SERVICE'])
|
||||||
|
|
||||||
@ -289,6 +290,10 @@ class TopLevelCommand(Command):
|
|||||||
'tty': tty,
|
'tty': tty,
|
||||||
'stdin_open': not options['-d'],
|
'stdin_open': not options['-d'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if options['--entrypoint']:
|
||||||
|
container_options['entrypoint'] = options.get('--entrypoint')
|
||||||
|
|
||||||
container = service.create_container(one_off=True, **container_options)
|
container = service.create_container(one_off=True, **container_options)
|
||||||
if options['-d']:
|
if options['-d']:
|
||||||
service.start_container(container, ports=None, one_off=True)
|
service.start_container(container, ports=None, one_off=True)
|
||||||
|
@ -89,7 +89,9 @@ class Container(object):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def human_readable_command(self):
|
def human_readable_command(self):
|
||||||
return ' '.join(self.get('Config.Cmd') or '')
|
entrypoint = self.get('Config.Entrypoint') or []
|
||||||
|
cmd = self.get('Config.Cmd') or []
|
||||||
|
return ' '.join(entrypoint + cmd)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def environment(self):
|
def environment(self):
|
||||||
|
2
tests/fixtures/dockerfile_with_entrypoint/Dockerfile
vendored
Normal file
2
tests/fixtures/dockerfile_with_entrypoint/Dockerfile
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
FROM busybox:latest
|
||||||
|
ENTRYPOINT echo "From prebuilt entrypoint"
|
2
tests/fixtures/dockerfile_with_entrypoint/fig.yml
vendored
Normal file
2
tests/fixtures/dockerfile_with_entrypoint/fig.yml
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
service:
|
||||||
|
build: tests/fixtures/dockerfile_with_entrypoint
|
@ -191,6 +191,21 @@ class CLITestCase(DockerClientTestCase):
|
|||||||
[u'/bin/true'],
|
[u'/bin/true'],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@patch('dockerpty.start')
|
||||||
|
def test_run_service_with_entrypoint_overridden(self, _):
|
||||||
|
self.command.base_dir = 'tests/fixtures/dockerfile_with_entrypoint'
|
||||||
|
name = 'service'
|
||||||
|
self.command.dispatch(
|
||||||
|
['run', '--entrypoint', '/bin/echo', name, 'helloworld'],
|
||||||
|
None
|
||||||
|
)
|
||||||
|
service = self.project.get_service(name)
|
||||||
|
container = service.containers(stopped=True, one_off=True)[0]
|
||||||
|
self.assertEqual(
|
||||||
|
container.human_readable_command,
|
||||||
|
u'/bin/echo helloworld'
|
||||||
|
)
|
||||||
|
|
||||||
def test_rm(self):
|
def test_rm(self):
|
||||||
service = self.project.get_service('simple')
|
service = self.project.get_service('simple')
|
||||||
service.create_container()
|
service.create_container()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user