From 9f16bcdadb4c2c6c8861f5d08ba07423f664926d Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Mon, 27 Sep 2021 16:55:01 -0600 Subject: [PATCH 1/6] added ports to docker.#Run Signed-off-by: Richard Jones --- stdlib/docker/docker.cue | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/stdlib/docker/docker.cue b/stdlib/docker/docker.cue index 3b26dfd8..85f781b3 100644 --- a/stdlib/docker/docker.cue +++ b/stdlib/docker/docker.cue @@ -2,6 +2,7 @@ package docker import ( + "strings" "alpha.dagger.io/dagger" "alpha.dagger.io/dagger/op" ) @@ -138,6 +139,9 @@ import ( secret: dagger.#Secret } & dagger.#Input + // local ports + ports?: [...string] + #command: #""" # Run detach container OPTS="" @@ -146,6 +150,10 @@ import ( OPTS="$OPTS --name $CONTAINER_NAME" fi + if [ ! -z "$CONTAINER_PORTS" ]; then + OPTS="$OPTS -p $CONTAINER_PORTS" + fi + docker container run -d $OPTS "$IMAGE_REF" """# @@ -163,6 +171,10 @@ import ( if name != _|_ { CONTAINER_NAME: name } + + if ports != _|_ { + CONTAINER_PORTS: strings.Join(ports," -p ") + } } } } From c04ef323d2f9f4b6a6027df235c96838c0f56705 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Mon, 27 Sep 2021 20:40:55 -0600 Subject: [PATCH 2/6] cue fmt Signed-off-by: Richard Jones --- stdlib/docker/docker.cue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/docker/docker.cue b/stdlib/docker/docker.cue index 85f781b3..0236ed8b 100644 --- a/stdlib/docker/docker.cue +++ b/stdlib/docker/docker.cue @@ -173,7 +173,7 @@ import ( } if ports != _|_ { - CONTAINER_PORTS: strings.Join(ports," -p ") + CONTAINER_PORTS: strings.Join(ports, " -p ") } } } From eadaf73d3cbc5626d8732c7cadf58b34f3075202 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Tue, 28 Sep 2021 09:02:38 -0600 Subject: [PATCH 3/6] regenerated docs Signed-off-by: Richard Jones --- docs/reference/docker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/docker/README.md b/docs/reference/docker/README.md index a8c7cedd..d96f3365 100644 --- a/docs/reference/docker/README.md +++ b/docs/reference/docker/README.md @@ -79,7 +79,7 @@ Push a docker image to a remote registry | Name | Type | Description | | ------------- |:-------------: |:-------------: | |*ref* | `string` |Image reference (e.g: nginx:alpine) | -|*run.command* | `"""\n # Run detach container\n OPTS=""\n \n if [ ! -z "$CONTAINER_NAME" ]; then\n \tOPTS="$OPTS --name $CONTAINER_NAME"\n fi\n \n docker container run -d $OPTS "$IMAGE_REF"\n """` |Command to execute | +|*run.command* | `"""\n # Run detach container\n OPTS=""\n \n if [ ! -z "$CONTAINER_NAME" ]; then\n \tOPTS="$OPTS --name $CONTAINER_NAME"\n fi\n \n if [ ! -z "$CONTAINER_PORTS" ]; then\n \tOPTS="$OPTS -p $CONTAINER_PORTS"\n fi\n \n docker container run -d $OPTS "$IMAGE_REF"\n """` |Command to execute | |*run.env.IMAGE_REF* | `string` |- | |*run.registries* | `[]` |Image registries | From d496b77c712e01bee54817271855a98e9880fb41 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Tue, 28 Sep 2021 09:33:02 -0600 Subject: [PATCH 4/6] added test for docker run with ports Signed-off-by: Richard Jones --- .../.dagger/env/docker-run-ports/.gitignore | 2 ++ .../.dagger/env/docker-run-ports/values.yaml | 23 +++++++++++++++++++ stdlib/docker/tests/run-ports/ports.cue | 17 ++++++++++++++ stdlib/universe.bats | 9 ++++++++ 4 files changed, 51 insertions(+) create mode 100644 stdlib/.dagger/env/docker-run-ports/.gitignore create mode 100644 stdlib/.dagger/env/docker-run-ports/values.yaml create mode 100644 stdlib/docker/tests/run-ports/ports.cue diff --git a/stdlib/.dagger/env/docker-run-ports/.gitignore b/stdlib/.dagger/env/docker-run-ports/.gitignore new file mode 100644 index 00000000..01ec19b0 --- /dev/null +++ b/stdlib/.dagger/env/docker-run-ports/.gitignore @@ -0,0 +1,2 @@ +# dagger state +state/** diff --git a/stdlib/.dagger/env/docker-run-ports/values.yaml b/stdlib/.dagger/env/docker-run-ports/values.yaml new file mode 100644 index 00000000..ff47e285 --- /dev/null +++ b/stdlib/.dagger/env/docker-run-ports/values.yaml @@ -0,0 +1,23 @@ +plan: + package: ./docker/tests/run-ports +name: docker-run-ports +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1gxwmtwahzwdmrskhf90ppwlnze30lgpm056kuesrxzeuyclrwvpsupwtpk + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpbHY3ZzZjWWdRcVd5UUdT + eFI4UmhTUkd6a0lscDZ3SzVFT2NiSzFRUHhFCnRsRXorSFhjano1WTcrYjlGZElm + S2o1V005SlpSbHBmbjJNZ1I3VTRXVGMKLS0tIEdlMThjcmNGK3VJdXV4anNud21x + TS80V3BnN3BaeDFTRjNBRTAwbWRKcWcK1rH2zWxTQsbSgOs9Ys89ZCP7kVOm1wFe + Kv849q+QOvIy9JPYkGgV16Yr3ijFF7z/h0PCicZRI76WYV/3JnbYmg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2021-09-28T15:06:47Z" + mac: ENC[AES256_GCM,data:WF2X4RCio9x459Fv4XK/P933cS9uac3kHA2+kfaft++ndxbHOY0zmOhUvNMmzLtJNTXL7oBADWIIqIiFbaaC0pC+xGq1th+woR3LvAVQi5J0rlDTcdMDPT03KOPdOmsXFDow5jzyn8vPsC59VCys0ZmEnmnHIGufnFy2qKVV0bM=,iv:GUrSk66zhDqxx+rVM9zMDfmcaDBSOOMIeCSViS2cuLU=,tag:rgCoWe//hn8xmeRmbc5ybQ==,type:str] + pgp: [] + encrypted_suffix: secret + version: 3.7.1 diff --git a/stdlib/docker/tests/run-ports/ports.cue b/stdlib/docker/tests/run-ports/ports.cue new file mode 100644 index 00000000..95a395c0 --- /dev/null +++ b/stdlib/docker/tests/run-ports/ports.cue @@ -0,0 +1,17 @@ +package docker + +import ( + "alpha.dagger.io/dagger" + "alpha.dagger.io/random" +) + +suffix: random.#String & { + seed: "" +} + +run: #Run & { + name: "daggerci-test-ports-\(suffix.out)" + ref: "nginx" + socket: dagger.#Stream & {unix: "/var/run/docker.sock"} + ports: ["8080:80"] +} diff --git a/stdlib/universe.bats b/stdlib/universe.bats index 2c820919..6f959f9b 100644 --- a/stdlib/universe.bats +++ b/stdlib/universe.bats @@ -79,6 +79,15 @@ setup() { dagger -e docker-run-local up } +@test "docker run: ports" { + dagger -e docker-run-ports up + CONTAINER=$(docker container ls -q --filter "name=daggerci-test-ports-*") + until docker inspect --format "{{json .State.Status }}" $CONTAINER | grep -m 1 "running"; do sleep 1 ; done + run curl -f -LI http://localhost:8080 + assert_output --partial '200 OK' + docker stop $CONTAINER && docker rm $CONTAINER +} + @test "docker build" { dagger -e docker-build up } From d63ac607a47f4896901227b9cd129f3dde7e4412 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Tue, 28 Sep 2021 09:52:49 -0600 Subject: [PATCH 5/6] added quotes to fix GHA Signed-off-by: Richard Jones --- stdlib/universe.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/universe.bats b/stdlib/universe.bats index 6f959f9b..35ab76ea 100644 --- a/stdlib/universe.bats +++ b/stdlib/universe.bats @@ -85,7 +85,7 @@ setup() { until docker inspect --format "{{json .State.Status }}" $CONTAINER | grep -m 1 "running"; do sleep 1 ; done run curl -f -LI http://localhost:8080 assert_output --partial '200 OK' - docker stop $CONTAINER && docker rm $CONTAINER + docker stop "$CONTAINER" && docker rm "$CONTAINER" } @test "docker build" { From 4a21475b1e1e8ed3933e2250ce22a6a0a7b9bf82 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Tue, 28 Sep 2021 10:00:26 -0600 Subject: [PATCH 6/6] one last var needed quotes Signed-off-by: Richard Jones --- stdlib/universe.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/universe.bats b/stdlib/universe.bats index 35ab76ea..0a19361e 100644 --- a/stdlib/universe.bats +++ b/stdlib/universe.bats @@ -82,7 +82,7 @@ setup() { @test "docker run: ports" { dagger -e docker-run-ports up CONTAINER=$(docker container ls -q --filter "name=daggerci-test-ports-*") - until docker inspect --format "{{json .State.Status }}" $CONTAINER | grep -m 1 "running"; do sleep 1 ; done + until docker inspect --format "{{json .State.Status }}" "$CONTAINER" | grep -m 1 "running"; do sleep 1 ; done run curl -f -LI http://localhost:8080 assert_output --partial '200 OK' docker stop "$CONTAINER" && docker rm "$CONTAINER"