Skip to content

Commit be3d206

Browse files
authored
Remove hardcoded Oracle image name (#628)
1 parent 0abaf4a commit be3d206

File tree

6 files changed

+52
-4
lines changed

6 files changed

+52
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ All notable changes to this project will be documented in this file.
1616
- Deprecated `WaitStrategy` and implementations in favour of classes with same names in `org.testcontainers.containers.strategy` ([\#600](https://github.com/testcontainers/testcontainers-java/pull/600))
1717
- Added `ContainerState` interface representing the state of a started container ([\#600](https://github.com/testcontainers/testcontainers-java/pull/600))
1818
- Added `WaitStrategyTarget` interface which is the target of the new `WaitStrategy` ([\#600](https://github.com/testcontainers/testcontainers-java/pull/600))
19+
- *Breaking:* Removed hard-coded `wnameless` Oracle database image name. Users should instead place a file on the classpath named `testcontainers.properties` containing `oracle.container.image=IMAGE`, where IMAGE is a suitable image name and tag/SHA hash. For information, the approach recommended by Oracle for creating an Oracle XE docker image is described [here](https://blogs.oracle.com/oraclewebcentersuite/implement-oracle-database-xe-as-docker-containers).
1920
- Added `DockerHealthcheckWaitStrategy` that is based on Docker's built-in [healthcheck](https://docs.docker.com/engine/reference/builder/#healthcheck) ([\#618](https://github.com/testcontainers/testcontainers-java/pull/618)).
2021

2122
## [1.6.0] - 2018-01-28
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
oracle.container.image=wnameless/oracle-xe-11g@sha256:15ff9ef50b4f90613c9780b589c57d98a8a9d496decec854316d96396ec5c085

modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,24 @@
88
public class OracleContainer extends JdbcDatabaseContainer {
99

1010
public static final String NAME = "oracle";
11-
public static final String IMAGE = TestcontainersConfiguration.getInstance()
12-
.getProperties().getProperty("oracle.container.image","wnameless/oracle-xe-11g");
11+
1312
private static final int ORACLE_PORT = 1521;
1413
private static final int APEX_HTTP_PORT = 8080;
1514

15+
private static String resolveImageName() {
16+
String image = TestcontainersConfiguration.getInstance()
17+
.getProperties().getProperty("oracle.container.image");
18+
19+
if (image == null) {
20+
throw new IllegalStateException("An image to use for Oracle containers must be configured. " +
21+
"To do this, please place a file on the classpath named `testcontainers.properties`, " +
22+
"containing `oracle.container.image=IMAGE`, where IMAGE is a suitable image name and tag.");
23+
}
24+
return image;
25+
}
26+
1627
public OracleContainer() {
17-
super(IMAGE + "@sha256:15ff9ef50b4f90613c9780b589c57d98a8a9d496decec854316d96396ec5c085");
28+
super(resolveImageName());
1829
}
1930

2031
public OracleContainer(String dockerImageName) {

modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainerProvider.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ public boolean supports(String databaseType) {
1111

1212
@Override
1313
public JdbcDatabaseContainer newInstance(String tag) {
14-
return new OracleContainer(OracleContainer.IMAGE + ":" + tag);
14+
15+
if (!tag.equalsIgnoreCase("latest")) {
16+
throw new UnsupportedOperationException("Oracle database tag should be set in the configured image name");
17+
}
18+
19+
return new OracleContainer();
1520
}
1621
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<configuration>
2+
3+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
4+
<!-- encoders are assigned the type
5+
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
6+
<encoder>
7+
<pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
8+
</encoder>
9+
</appender>
10+
11+
<root level="debug">
12+
<appender-ref ref="STDOUT"/>
13+
</root>
14+
15+
<logger name="org.apache.http" level="WARN"/>
16+
<logger name="com.github.dockerjava" level="WARN"/>
17+
<logger name="org.zeroturnaround.exec" level="WARN"/>
18+
<logger name="com.zaxxer.hikari" level="INFO"/>
19+
<logger name="org.rnorth.tcpunixsocketproxy" level="INFO" />
20+
<logger name="io.netty" level="WARN" />
21+
<logger name="org.mongodb" level="INFO" />
22+
<logger name="org.testcontainers.shaded" level="WARN"/>
23+
<logger name="com.zaxxer.hikari" level="INFO"/>
24+
25+
<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
26+
<Marker>PROFILER</Marker>
27+
<OnMatch>DENY</OnMatch>
28+
</turboFilter>
29+
</configuration>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
oracle.container.image=wnameless/oracle-xe-11g@sha256:15ff9ef50b4f90613c9780b589c57d98a8a9d496decec854316d96396ec5c085

0 commit comments

Comments
 (0)