Skip to content

Commit f2fa075

Browse files
committed
simplify by starting container with numeric uid to avoid the need to look it up
1 parent daf8543 commit f2fa075

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

docker-java/src/test/java/com/github/dockerjava/cmd/CopyArchiveToContainerCmdIT.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
import java.nio.file.Path;
1717
import java.nio.file.Paths;
1818
import java.util.concurrent.TimeUnit;
19-
import java.util.regex.Matcher;
20-
import java.util.regex.Pattern;
2119

2220
import static org.hamcrest.MatcherAssert.assertThat;
2321
import static org.hamcrest.Matchers.containsString;
@@ -152,19 +150,18 @@ public void copyFileWithExecutePermission() throws Exception {
152150

153151
@Test
154152
public void copyFileWithUIDGID() throws Exception {
155-
Path withDir = Files.createTempDirectory("copyFileWithUIDGID");
156153
Path with = Files.createFile(Files.createTempDirectory("copyFileWithUIDGID").resolve("uidgid.with"));
157154
Files.write(with, "with".getBytes());
158155

159-
Path withoutDir = Files.createTempDirectory("copyFileWithUIDGID");
160156
Path without = Files.createFile(Files.createTempDirectory("copyFileWithUIDGID").resolve("uidgid.without"));
161-
Files.write(without, "with".getBytes());
157+
Files.write(without, "without".getBytes());
162158

163-
String containerCmd = "while [ ! -f /home/uidgid.with ]; do true; done && echo uid=$(id -u) && stat -c %n:%u /home/uidgid.with /home/uidgid.without";
159+
String containerCmd = "while [ ! -f /home/uidgid.with ]; do true; done && stat -c %n:%u /home/uidgid.with /home/uidgid.without";
160+
Long syncUserUid = 4L; // sync user in busybox uses uid=4
164161
CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox")
165162
.withName("copyFileWithUIDGID")
166163
.withCmd("/bin/sh", "-c", containerCmd)
167-
.withUser("sync")
164+
.withUser(syncUserUid.toString())
168165
.exec();
169166
// start the container
170167
dockerRule.getClient().startContainerCmd(container.getId()).exec();
@@ -197,12 +194,7 @@ public void copyFileWithUIDGID() throws Exception {
197194
loggingCallback.awaitCompletion(3, TimeUnit.SECONDS);
198195
String containerOutput = loggingCallback.toString();
199196

200-
Matcher uidMatcher = Pattern.compile("uid=(\\d+)").matcher(containerOutput);
201-
assertThat(String.format("cannot read effective uid on container from '%s'", containerOutput), uidMatcher.find(), equalTo(true));
202-
assertThat(String.format("cannot read effective uid on container from '%s'", containerOutput), uidMatcher.groupCount(), equalTo(1));
203-
Long containerEffectiveUid = Long.parseLong(uidMatcher.group(1));
204-
205-
assertThat(containerOutput, containsString(String.format("/home/uidgid.with:%d", containerEffectiveUid)));
197+
assertThat(containerOutput, containsString(String.format("/home/uidgid.with:%d", syncUserUid)));
206198

207199
Long hostUid = getHostUidIfPossible();
208200
assumeThat("could not get the uid on host platform", hostUid, notNullValue(Long.class));

0 commit comments

Comments
 (0)