|
1 | 1 | <!--
|
2 |
| - Copyright (c) 2015, 2020, Oracle and/or its affiliates. |
| 2 | + Copyright (c) 2015, 2022, Oracle and/or its affiliates. |
3 | 3 | Licensed under the Universal Permissive License v 1.0 as shown at
|
4 | 4 | https://oss.oracle.com/licenses/upl.
|
5 | 5 | -->
|
6 |
| -Oracle Coherence Docker Image |
| 6 | +Oracle Coherence Docker Images |
7 | 7 | ===============
|
8 |
| -This section is about using [Oracle Coherence](https://www.oracle.com/technetwork/middleware/coherence/overview/index.html) |
9 |
| -in Docker. The purpose of the Docker images described here is to facilitate the setup of development |
10 |
| -and integration testing environments for developers. This project includes example Dockerfiles and |
11 |
| -documentation for Coherence based on Oracle Linux and Oracle Java 8, 11 or Graal base images. |
12 | 8 |
|
13 |
| -The certification of Coherence on Docker does not require the use of any file presented in this |
14 |
| -repository. Customers and users are welcome to use them as starters, and customize/tweak, or create |
15 |
| -from scratch new scripts and Dockerfiles. |
| 9 | +Instructions for building [Oracle Coherence](https://www.oracle.com/technetwork/middleware/coherence/overview/index.html) images are no longer |
| 10 | +included in this repository. The old instructions in this repository used the Coherence commercial installer to install Coherence into an image - |
| 11 | +this is not a recommended way to build Coherence images. |
| 12 | +In almost every Oracle Coherence use case, Coherence is used as one or more libraries that are included as application |
| 13 | +dependencies, it is not run from the files installed by the commercial Coherence installer. Moreover, since the relase of Coherence Community Edition, |
| 14 | +which is published on Maven Central, CE customers do not use the commercial installer to obtain Coherence. |
16 | 15 |
|
17 |
| -## Oracle Linux Base Image |
18 |
| -For more information and documentation, read the [Docker Images from Oracle Linux](https://registry.hub.docker.com/_/oraclelinux/) page. |
| 16 | +Pre-built images for the OSS [Coherence Community Edition](https://github.com/oracle/coherence) can be found in the |
| 17 | +[GitHub packages](https://github.com/oracle/coherence/pkgs/container/coherence-ce) section of the Coherence CE repository. |
| 18 | +These are publicly availabe images that can be pulled from ghcr.io |
19 | 19 |
|
20 |
| -## Oracle Coherence Standalone Distribution |
21 |
| -For more information on the Coherence Standalone Distribution, visit the |
22 |
| -[Coherence Documentation](https://docs.oracle.com/en/middleware/standalone/coherence/index.html). |
| 20 | +Pre-built images containing the commercial Coherence releases can be found in the Middleware section of |
| 21 | +the [Oracle Container Registry](https://container-registry.oracle.com) |
23 | 22 |
|
24 |
| -## Building the Java Base Image(s) |
25 |
| - |
26 |
| -Coherence Docker images use a Java base image. Before you can build a Coherence image |
27 |
| -you must have built the required Java image or images. |
28 |
| - |
29 |
| -### Coherence 14.1.1.0.0 |
30 |
| - |
31 |
| -Coherence 14.1.1.0.0 Docker images can use the following as base images: |
32 |
| - |
33 |
| -1. Oracle Java 8 - see [Oracle Java images](../OracleJava/) |
34 |
| -1. Oracle Java 11 - see [Oracle Java images](../OracleJava/) |
35 |
| -3. GraalVM CE Java 8 or Java 11 images - see [GraalVM images](../GraalVM/CE/) |
36 |
| - |
37 |
| -> Note: For building a Graal based Coherence image, the Oracle Java 8 image is also required for |
38 |
| -> the image build process. |
39 |
| -
|
40 |
| -### Coherence versions prior to 14.1.1.0.0 |
41 |
| - |
42 |
| -Before you can build these Oracle Coherence images you must have built the required Oracle |
43 |
| -Java 8 (see [Oracle Java images](../OracleJava/)) image. |
44 |
| - |
45 |
| -## How to Build |
46 |
| - |
47 |
| -For Coherence 14.1.1.0.0 and 12.2.1.4.0, Maven is required to build the Docker image. |
48 |
| -Maven is used to pull dependent libraries which are then bundled into the Docker image |
49 |
| -to enable running the Coherence Management over REST and Coherence Metrics endpoints |
50 |
| -within the container. |
51 |
| - |
52 |
| -### To build a Coherence 14.1.1.0.0 or 12.2.1.4.0 Docker image |
53 |
| - |
54 |
| -#### Prerequisites for building with Maven |
55 |
| - |
56 |
| -* Java 8 JDK |
57 |
| -* Maven 3.6.1 |
58 |
| - |
59 |
| -#### Build steps |
60 |
| - |
61 |
| -The following steps build a Coherence 14.1.1.0.0 Docker container as an example |
62 |
| - |
63 |
| -1. Checkout the GitHub Oracle Docker Images repository |
64 |
| - |
65 |
| - ```shell |
66 |
| - git clone git@github.com:oracle/docker-images.git |
67 |
| - ```` |
68 |
| - |
69 |
| -1. Go to the directory containing the Dockerfile |
70 |
| - |
71 |
| - ```shell |
72 |
| - cd OracleCoherence/dockerfiles/14.1.1.0.0/src/main/docker |
73 |
| - ``` |
74 |
| - |
75 |
| -1. [Download the Coherence distribution file](https://www.oracle.com/middleware/technologies/coherence-downloads.html) |
76 |
| - of your choice and save it to the current directory. The build script supports |
77 |
| - building an image from either the Quick Installer, `fmw_14.1.1.0.0_coherence_quick_Disk1_1of1.zip`, |
78 |
| - or the Standalone Installer, `fmw_14.1.1.0.0_coherence_Disk1_1of1.zip`. |
79 |
| - |
80 |
| - > **_NOTE:_** The `Dockerfile` is currently configured to use the Quick Installer. |
81 |
| - |
82 |
| -1. Go to the maven project directory |
83 |
| - |
84 |
| - ```shell |
85 |
| - cd OracleCoherence/dockerfiles/14.1.1.0.0 |
86 |
| - ``` |
87 |
| - |
88 |
| -1. Ensure that image `oracle/serverjre:8` or `oracle/jdk:11` is available |
89 |
| - |
90 |
| - Image `oracle/serverjre:8` is required for both the Coherence Java 8 based Docker image and the |
91 |
| - Graal based Docker image. For the Graal based Docker image `oracle/serverjre:8` is used in the |
92 |
| - first stage of the multipart Docker image build process. |
93 |
| - |
94 |
| - If building a Coherence Java 11 based Docker image (*Coherence 14.1.1.0.0 only), then only |
95 |
| - `oracle/jdk:11` is required. |
96 |
| - |
97 |
| -1. Ensure that image `oracle/graalvm-ce` is available if building a Graal based Coherence |
98 |
| - image (*Coherence 14.1.1.0.0 only*) |
99 |
| - |
100 |
| -1. Build the Docker image with Maven |
101 |
| - |
102 |
| - To build a Docker image which uses Oracle Java 8 as the base image: |
103 |
| - |
104 |
| - ```shell |
105 |
| - mvn install |
106 |
| - ``` |
107 |
| - |
108 |
| - The resulting image file will be called `oracle/coherence:14.1.1.0.0`. |
109 |
| - |
110 |
| - To build a Docker image using Oracle Java 11 as the base image (*Coherence 14.1.1.0.0 only*): |
111 |
| - |
112 |
| - ```shell |
113 |
| - mvn install -Pjdk11 |
114 |
| - ``` |
115 |
| - |
116 |
| - The resulting image file will be called `oracle/coherence:14.1.1.0.0-jdk11`. |
117 |
| - |
118 |
| - To build a Docker image using GraalVM (CE) as the base image (*Coherence 14.1.1.0.0 only*): |
119 |
| - |
120 |
| - ```shell |
121 |
| - mvn install -Pgraal |
122 |
| - ``` |
123 |
| - |
124 |
| - The resulting image file will be called `oracle/coherence:14.1.1.0.0-graal`. |
125 |
| - |
126 |
| -### To build a Docker image for for Coherence 12.2.1.3.0 and earlier Coherence versions |
127 |
| - |
128 |
| -1. Checkout the GitHub Oracle Docker Images repository |
129 |
| - |
130 |
| - ```shell |
131 |
| - git clone git@github.com:oracle/docker-images.git |
132 |
| - ```` |
133 |
| -
|
134 |
| -1. Go to the `OracleCoherence/dockerfiles/12.2.1.3` folder |
135 |
| -
|
136 |
| - ```shell |
137 |
| - cd OracleCoherence/dockerfiles/12.2.1.3.0 |
138 |
| - ``` |
139 |
| -
|
140 |
| -1. [Download the Coherence distribution file](https://www.oracle.com/middleware/technologies/coherence-downloads.html) |
141 |
| - of your choice and save it to the current directory. The build script supports |
142 |
| - either building an image from either the Standalone Installer, |
143 |
| - `fmw_12.2.1.3.0_coherence_Disk1_1of1.zip` or the Quick Installer |
144 |
| - `fmw_12.2.1.3.0_coherence_quick_Disk1_1of1.zip` |
145 |
| -
|
146 |
| -1. Ensure that image `oracle/serverjre:8` is available |
147 |
| -
|
148 |
| -1. Execute the build script `buildDockerImage.sh`. |
149 |
| -
|
150 |
| - ```shell |
151 |
| - cd .. |
152 |
| - sh buildDockerImage.sh |
153 |
| - ``` |
154 |
| -
|
155 |
| - or if your Docker client requires commands to be run as root you can run |
156 |
| -
|
157 |
| - ```shell |
158 |
| - sudo sh buildDockerImage.sh |
159 |
| - ``` |
160 |
| -
|
161 |
| - The script will determine which installer and image it is building from the installer |
162 |
| - file that is in the working directory. If both the Standalone and Quick installers are |
163 |
| - present then the default will be to use the Standalone installer. You can specify which |
164 |
| - installer to use with a script argument. To run the Standalone installer use: |
165 |
| -
|
166 |
| - ```shell |
167 |
| - sh buildDockerImage.sh -s |
168 |
| - ``` |
169 |
| -
|
170 |
| - Or to run the Quick installer use: |
171 |
| -
|
172 |
| - ```shell |
173 |
| - sh buildDockerImage.sh -q |
174 |
| - ``` |
175 |
| -
|
176 |
| - If you are using a different version of Coherence than 12.2.1.3.0 then you can use the `-v` |
177 |
| - parameter to specify a version. For example if you are using 12.2.1.2.0 you would run: |
178 |
| -
|
179 |
| - ```shell |
180 |
| - sh buildDockerImage.sh -v 12.2.1.2.0 |
181 |
| - ``` |
182 |
| -
|
183 |
| -1. The resulting image file will be called `oracle/coherence:${version}-${distribution}`, for example |
184 |
| - if the Standalone installer is used the image will be `oracle/coherence:12.2.1.3.0-standalone` |
185 |
| -
|
186 |
| -1. The image is built with a shell as its ENTRYPOINT that allows the image to be run using |
187 |
| - the normal Docker run command. See the [Image Usage](00.imageusage) documentation. |
188 |
| -
|
189 |
| -### For Coherence 12.2.1.3.2 follow this process |
190 |
| -
|
191 |
| -> Note: This image can only be build by Oracle customers with an active support subscription. |
192 |
| -
|
193 |
| -1. Checkout the GitHub Oracle Docker Images repository |
194 |
| -
|
195 |
| - ```shell |
196 |
| - git clone git@github.com:oracle/docker-images.git |
197 |
| - ``` |
198 |
| -
|
199 |
| -1. Go to the `OracleCoherence/dockerfiles/12.2.1.3.2` folder |
200 |
| -
|
201 |
| - ```shell |
202 |
| - cd OracleCoherence/dockerfiles/12.2.1.3.2 |
203 |
| - ``` |
204 |
| -
|
205 |
| -1. [Download the Coherence distribution file](https://www.oracle.com/middleware/technologies/coherence-downloads.html) |
206 |
| - of your choice and save it to the current directory. The build script supports either |
207 |
| - building an image from either the Standalone Installer, `fmw_12.2.1.3.0_coherence_Disk1_1of1.zip` |
208 |
| - or the Quick Installer `fmw_12.2.1.3.0_coherence_quick_Disk1_1of1.zip` |
209 |
| -
|
210 |
| -1. [Download the Coherence 12.2.1.3.2 cumulative patch file](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29204496) |
211 |
| - and save it to the current directory. |
212 |
| -
|
213 |
| -1. Ensure that image `oracle/serverjre:8` is available |
214 |
| -
|
215 |
| -1. Execute the build script `buildDockerImage.sh`. |
216 |
| -
|
217 |
| - ```shell |
218 |
| - cd .. |
219 |
| - sh buildDockerImage.sh -v 12.2.1.3.2 |
220 |
| - ``` |
221 |
| -
|
222 |
| - or if your Docker client requires commands to be run as root you can run |
223 |
| -
|
224 |
| - ```shell |
225 |
| - sudo sh buildDockerImage.sh -v 12.2.1.3.2 |
226 |
| - ``` |
227 |
| -
|
228 |
| -1. The resulting image file will be called `oracle/coherence:${version}-${distribution}`, for example |
229 |
| - if the Standalone installer is used the image will be `oracle/coherence:12.2.1.3.2-standalone` |
230 |
| -
|
231 |
| -## Documentation |
232 |
| -Documentation covering the different aspects of running Oracle Coherence in Docker containers is covered |
233 |
| -in the [docs](docs) section. |
234 |
| -
|
235 |
| -1. [Image Usage](docs/00.imageusage) - Usage instructions for running the Coherence image |
236 |
| -2. [Setup](docs/0.setup) - Setting Up a Demo Docker Machine Environment |
237 |
| -3. [Clustering](docs/1.clustering) - Running Coherence Clusters in Docker |
238 |
| -4. [Coherence Extend](docs/2.extend) - Running Coherence Extend in Docker |
239 |
| -5. [Federated Caching](docs/3.federation) - Federated Caching in Docker |
240 |
| -6. [Disc Based Functionality](docs/4.disc_based) - Elastic Data and Persistence in Docker |
241 |
| -7. [JMX Monitoring](docs/5.monitoring) - Using JMX in Docker |
242 |
| -
|
243 |
| -## Issues |
244 |
| -If you find any issues with this Docker project, please report through the |
245 |
| -[GitHub Issues page](https://github.com/oracle/docker-images/issues). |
246 |
| -
|
247 |
| -## Licenses |
248 |
| -To download and run Coherence Distribution regardless of inside or outside a Docker container, |
249 |
| -and regardless of which distribution, you must agree and accept the |
250 |
| -[OTN Standard License Terms](https://www.oracle.com/technetwork/licenses/standard-license-152015.html). |
251 |
| -
|
252 |
| -To download and run Oracle JDK regardless of inside or outside a Docker container, you must agree |
253 |
| -and accept the [Oracle Binary Code License Agreement for Java SE](https://www.oracle.com/technetwork/java/javase/terms/license/index.html). |
254 |
| -
|
255 |
| -All scripts and files hosted in this project on GitHub |
256 |
| -[docker-images/OracleCoherence](https://github.com/oracle/docker-images/OracleCoherence) |
257 |
| -repository required to build the Docker images are, unless otherwise noted, released under |
258 |
| -[UPL 1.0](https://oss.oracle.com/licenses/upl/), except for the files listed above with their |
259 |
| -specific licenses. |
260 |
| -
|
261 |
| -Copyright (c) 2015, 2020, Oracle and/or its affiliates. |
| 23 | +Documentation on approaches for building Coherence application images can also be found in the |
| 24 | +[Coherence Kubernetes Operator](https://oracle.github.io/coherence-operator/docs/latest/#/docs/applications/020_build_application) documentation. |
0 commit comments