Skip to content

Commit d076937

Browse files
authored
Add Nginx container implementation under org.testcontainers.nginx (#11087)
1 parent 4a38bdb commit d076937

File tree

4 files changed

+39
-6
lines changed

4 files changed

+39
-6
lines changed

docs/modules/nginx.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ Nginx is a web server, reverse proxy and mail proxy and http cache.
77
The following example shows how to start Nginx.
88

99
<!--codeinclude-->
10-
[Creating a Nginx container](../../modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java) inside_block:creatingContainer
10+
[Creating a Nginx container](../../modules/nginx/src/test/java/org/testcontainers/nginx/NginxContainerTest.java) inside_block:creatingContainer
1111
<!--/codeinclude-->
1212

1313
How to add custom content to the Nginx server.
1414

1515
<!--codeinclude-->
16-
[Creating the static content to serve](../../modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java) inside_block:addCustomContent
16+
[Creating the static content to serve](../../modules/nginx/src/test/java/org/testcontainers/nginx/NginxContainerTest.java) inside_block:addCustomContent
1717
<!--/codeinclude-->
1818

1919
And how to query the Nginx server for the custom content added.
2020

2121
<!--codeinclude-->
22-
[Creating the static content to serve](../../modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java) inside_block:getFromNginxServer
22+
[Creating the static content to serve](../../modules/nginx/src/test/java/org/testcontainers/nginx/NginxContainerTest.java) inside_block:getFromNginxServer
2323
<!--/codeinclude-->
2424

2525
## Adding this module to your project dependencies

modules/nginx/src/main/java/org/testcontainers/containers/NginxContainer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
import java.net.URL;
88
import java.util.Set;
99

10+
/**
11+
* @deprecated use {@link org.testcontainers.nginx.NginxContainer} instead.
12+
*/
13+
@Deprecated
1014
public class NginxContainer extends GenericContainer<NginxContainer> {
1115

1216
private static final int NGINX_DEFAULT_PORT = 80;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.testcontainers.nginx;
2+
3+
import org.testcontainers.containers.GenericContainer;
4+
import org.testcontainers.utility.DockerImageName;
5+
6+
import java.net.MalformedURLException;
7+
import java.net.URL;
8+
9+
public class NginxContainer extends GenericContainer<NginxContainer> {
10+
11+
private static final int NGINX_DEFAULT_PORT = 80;
12+
13+
private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("nginx");
14+
15+
public NginxContainer(String dockerImageName) {
16+
this(DockerImageName.parse(dockerImageName));
17+
}
18+
19+
public NginxContainer(final DockerImageName dockerImageName) {
20+
super(dockerImageName);
21+
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME);
22+
23+
addExposedPort(NGINX_DEFAULT_PORT);
24+
setCommand("nginx", "-g", "daemon off;");
25+
}
26+
27+
public URL getBaseUrl(String scheme, int port) throws MalformedURLException {
28+
return new URL(scheme + "://" + getHost() + ":" + getMappedPort(port));
29+
}
30+
}

modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java renamed to modules/nginx/src/test/java/org/testcontainers/nginx/NginxContainerTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
package org.testcontainers.junit;
1+
package org.testcontainers.nginx;
22

33
import lombok.Cleanup;
44
import org.junit.jupiter.api.BeforeAll;
55
import org.junit.jupiter.api.Test;
6-
import org.testcontainers.containers.NginxContainer;
76
import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
87
import org.testcontainers.utility.DockerImageName;
98
import org.testcontainers.utility.MountableFile;
@@ -19,7 +18,7 @@
1918

2019
import static org.assertj.core.api.Assertions.assertThat;
2120

22-
class SimpleNginxTest {
21+
class NginxContainerTest {
2322

2423
private static final DockerImageName NGINX_IMAGE = DockerImageName.parse("nginx:1.27.0-alpine3.19-slim");
2524

0 commit comments

Comments
 (0)