77
88package org .elasticsearch .test .fixtures .smb ;
99
10+ import com .github .dockerjava .api .model .Capability ;
11+
1012import org .elasticsearch .test .fixtures .testcontainers .DockerEnvironmentAwareTestContainer ;
13+ import org .testcontainers .containers .wait .strategy .Wait ;
1114import org .testcontainers .images .builder .ImageFromDockerfile ;
1215
1316public final class SmbTestContainer extends DockerEnvironmentAwareTestContainer {
1417
15- private static final String DOCKER_BASE_IMAGE = "ubuntu:16 .04" ;
18+ private static final String DOCKER_BASE_IMAGE = "ubuntu:24 .04" ;
1619 public static final int AD_LDAP_PORT = 636 ;
1720 public static final int AD_LDAP_GC_PORT = 3269 ;
1821
1922 public SmbTestContainer () {
2023 super (
2124 new ImageFromDockerfile ("es-smb-fixture" ).withDockerfileFromBuilder (
2225 builder -> builder .from (DOCKER_BASE_IMAGE )
23- .run ("apt-get update -qqy && apt-get install -qqy samba ldap-utils" )
26+ .env ("TZ" , "Etc/UTC" )
27+ .run ("DEBIAN_FRONTEND=noninteractive apt-get update -qqy && apt-get install -qqy tzdata winbind samba ldap-utils" )
2428 .copy ("fixture/provision/installsmb.sh" , "/fixture/provision/installsmb.sh" )
2529 .copy ("fixture/certs/ca.key" , "/fixture/certs/ca.key" )
2630 .copy ("fixture/certs/ca.pem" , "/fixture/certs/ca.pem" )
2731 .copy ("fixture/certs/cert.pem" , "/fixture/certs/cert.pem" )
2832 .copy ("fixture/certs/key.pem" , "/fixture/certs/key.pem" )
2933 .run ("chmod +x /fixture/provision/installsmb.sh" )
30- .run ("/fixture/provision/installsmb.sh" )
31- .cmd ("service samba-ad-dc restart && sleep infinity" )
34+ .cmd ("/fixture/provision/installsmb.sh && service samba-ad-dc restart && echo Samba started && sleep infinity" )
3235 .build ()
3336 )
3437 .withFileFromClasspath ("fixture/provision/installsmb.sh" , "/smb/provision/installsmb.sh" )
@@ -37,10 +40,16 @@ public SmbTestContainer() {
3740 .withFileFromClasspath ("fixture/certs/cert.pem" , "/smb/certs/cert.pem" )
3841 .withFileFromClasspath ("fixture/certs/key.pem" , "/smb/certs/key.pem" )
3942 );
40- // addExposedPort(389);
41- // addExposedPort(3268);
43+
4244 addExposedPort (AD_LDAP_PORT );
4345 addExposedPort (AD_LDAP_GC_PORT );
46+
47+ setWaitStrategy (Wait .forLogMessage (".*Samba started.*" , 1 ));
48+
49+ getCreateContainerCmdModifiers ().add (createContainerCmd -> {
50+ createContainerCmd .getHostConfig ().withCapAdd (Capability .SYS_ADMIN );
51+ return createContainerCmd ;
52+ });
4453 }
4554
4655 public String getAdLdapUrl () {
0 commit comments