test_docker_compose.py: Test the port publish feature

Extend docker_test() to expose a random (8888) port to verify that doesn't
fail, and extend the docker-compose test to run the busybox httpd in the
background, expose that as port 80 and verify that /etc/resolv.conf could be
fetched by wget.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Peter Korsgaard 2021-05-13 23:03:52 +02:00
parent 2fd33900f5
commit 4915b692c8
2 changed files with 8 additions and 3 deletions

View File

@ -2,3 +2,6 @@ version: '3'
services:
busybox:
image: "busybox:latest"
command: httpd -f -h /etc/
ports:
- "80:80"

View File

@ -37,13 +37,15 @@ class TestDockerCompose(infra.basetest.BRTest):
def docker_test(self):
# will download container if not available, which may take some time
_, exit_code = self.emulator.run('docker run --rm busybox:latest /bin/true', 120)
_, exit_code = self.emulator.run('docker run --rm -p 8888:8888 busybox:latest /bin/true', 120)
self.assertEqual(exit_code, 0)
def docker_compose_test(self):
# will download container if not available, which may take some time
_, exit_code = self.emulator.run('docker-compose up', 120)
self.assertEqual(exit_code, 0)
self.assertRunOk('docker-compose up -d', 120)
# container may take some time to start
self.assertRunOk('while ! docker inspect root_busybox_1 2>&1 >/dev/null; do sleep 1; done', 120)
self.assertRunOk('wget http://127.0.0.1/resolv.conf', 120)
def test_run(self):
kernel = os.path.join(self.builddir, "images", "bzImage")