Skip to content

Commit d1bbb8b

Browse files
cjbjDjelibeybi
authored andcommitted
Initial Instant Client 23c containers
Signed-off-by: Christopher Jones <christopher.jones@oracle.com>
1 parent fe736c5 commit d1bbb8b

File tree

4 files changed

+192
-16
lines changed

4 files changed

+192
-16
lines changed

.github/workflows/build-and-push-instantclient-images.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
paths:
88
- 'OracleInstantClient/*/19/*'
99
- 'OracleInstantClient/*/21/*'
10+
- 'OracleInstantClient/*/23/*'
1011
- '.github/workflows/build-and-push-instantclient-images.yml'
1112
workflow_dispatch:
1213

@@ -40,7 +41,7 @@ jobs:
4041
if grep -q build-and-push-instantclient-images.yml "${changes}"; then
4142
echo "PUSH: Action updated: rebuilding all images"
4243
ol="oraclelinux7 oraclelinux8 oraclelinux9"
43-
ic="19 21"
44+
ic="19 21 23"
4445
else
4546
echo "PUSH: Rebuilding changed images only"
4647
if grep -q oraclelinux7 "${changes}"; then
@@ -58,11 +59,14 @@ jobs:
5859
if grep -q /21/ "${changes}"; then
5960
ic="${ic} 21"
6061
fi
62+
if grep -q /23/ "${changes}"; then
63+
ic="${ic} 23"
64+
fi
6165
fi
6266
else
6367
echo "MANUAL: Rebuilding all"
6468
ol="oraclelinux7 oraclelinux8 oraclelinux9"
65-
ic="19 21"
69+
ic="19 21 23"
6670
fi
6771
echo "Rebuilding: ${ol} ${ic}"
6872
echo "ol=${ol}" >> $GITHUB_OUTPUT

OracleInstantClient/README.md

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ create and run applications that connect to a remote (or local) Oracle Database.
2525

2626
Oracle client-server version interoperability is detailed in [Doc ID
2727
207303.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=207303.1).
28-
In summary, applications using Oracle Call Interface (OCI) 21 can connect to
29-
Oracle Database 12.1 or later. Applications using Oracle Call Interface (OCI)
30-
19, 18 or 12.2 can connect to Oracle Database 11.2 or later. Some tools may
31-
have other restrictions.
28+
In summary, applications using Oracle Call Interface (OCI) 23 can connect to
29+
Oracle Database 19 or later. Applications using OCI 21 can connect to Oracle
30+
Database 12.1 or later. Applications using OCI 19, 18 or 12.2 can connect to
31+
Oracle Database 11.2 or later. Some tools may have other restrictions.
3232

3333
## Prebuilt Images
3434

@@ -51,6 +51,23 @@ docker pull ghcr.io/oracle/oraclelinux8-instantclient:21
5151
Prebuilt containers for some language images are also available in the
5252
registry.
5353

54+
## Building Oracle Instant Client 23 Images
55+
56+
Change directory to [`oraclelinux9/23`](oraclelinux9/23) or
57+
[`oraclelinux8/23`](oraclelinux8/23) and run:
58+
59+
```bash
60+
docker build --pull -t oracle/instantclient:23 .
61+
```
62+
63+
The build process automatically installs Instant Client using RPMs directly
64+
from the [Oracle Instant Client (OL9)
65+
repository](https://yum.oracle.com/repo/OracleLinux/OL9/oracle/instantclient23/x86_64/)
66+
or [Oracle Instant Client (OL8) repository](https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient23/x86_64/).
67+
68+
Applications using Oracle Call Interface (OCI) 23 can connect to Oracle Database
69+
19 or later. Some tools may have other restrictions.
70+
5471
## Building Oracle Instant Client 21 Images
5572

5673
Change directory to [`oraclelinux7/21`](oraclelinux7/21) or
@@ -61,10 +78,8 @@ docker build --pull -t oracle/instantclient:21 .
6178
```
6279

6380
The build process automatically installs Instant Client using RPMs directly from
64-
the [Oracle Instant Client repository
65-
(OL8)](https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient21/x86_64/)
66-
or [Oracle Instant Client repository
67-
(OL7)](https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient21/x86_64/).
81+
the [Oracle Instant Client (OL8) repository](https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient21/x86_64/)
82+
or [Oracle Instant Client (OL7) repository](https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient21/x86_64/).
6883

6984
Applications using Oracle Call Interface (OCI) 21 can connect to Oracle Database
7085
12.1 or later. Some tools may have other restrictions.
@@ -80,12 +95,9 @@ docker build --pull -t oracle/instantclient:19 .
8095
```
8196

8297
The build process automatically installs Instant Client using RPMs directly
83-
from the [Oracle Instant Client repository
84-
(OL9)](https://yum.oracle.com/repo/OracleLinux/OL9/oracle/instantclient/x86_64/index.html),
85-
[Oracle Instant Client repository
86-
(OL8)](https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/index.html),
87-
or [Oracle Instant Client repository
88-
(OL7)](https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/index.html).
98+
from the [Oracle Instant Client (OL9) repository](https://yum.oracle.com/repo/OracleLinux/OL9/oracle/instantclient/x86_64/index.html),
99+
[Oracle Instant Client (OL8) repository](https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/index.html),
100+
or [Oracle Instant Client (OL7) repository](https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/index.html).
89101

90102
Applications using Oracle Call Interface (OCI) 19 can connect to
91103
Oracle Database 11.2 or later. Some tools may have other
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# LICENSE UPL 1.0
2+
#
3+
# Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved.
4+
#
5+
# Container image template for Oracle Instant Client
6+
#
7+
# HOW TO BUILD THIS IMAGE AND RUN A CONTAINER
8+
# --------------------------------------------
9+
#
10+
# Execute:
11+
# $ podman build --pull -t oraclelinux8-instantclient:23 .
12+
# $ podman run -ti --rm oraclelinux8-instantclient:23 sqlplus /nolog
13+
#
14+
# NOTES
15+
# -----
16+
#
17+
# Applications using Oracle Call Interface (OCI) 23 can connect to Oracle
18+
# Database 19 or later. Some tools may have other restrictions.
19+
#
20+
# Oracle Instant Client 23 automatically configures the global library search
21+
# path to include Instant Client libraries.
22+
#
23+
# OPTIONAL ORACLE CONFIGURATION FILES
24+
# -----------------------------------
25+
#
26+
# Optional Oracle Network and Oracle client configuration files can be put in the
27+
# default configuration file directory /usr/lib/oracle/23/client64/lib/network/admin.
28+
# Configuration files include tnsnames.ora, sqlnet.ora, oraaccess.xml and
29+
# cwallet.sso. You can use a container volume to mount the directory containing
30+
# the files at runtime, for example:
31+
#
32+
# podman run -v /my/host/wallet_dir:/usr/lib/oracle/23/client64/lib/network/admin:Z,ro . . .
33+
#
34+
# This avoids embedding private information such as wallets in images. If you
35+
# do choose to include network configuration files in images, you can use a
36+
# Dockerfile COPY, for example:
37+
#
38+
# COPY tnsnames.ora sqlnet.ora /usr/lib/oracle/23/client64/lib/network/admin/
39+
#
40+
# There is no need to set the TNS_ADMIN environment variable when files are in
41+
# the container's default configuration file directory, as shown.
42+
#
43+
# ORACLE INSTANT CLIENT PACKAGES
44+
# ------------------------------
45+
#
46+
# Instant Client 23 Packages for Oracle Linux 8 are available from
47+
# https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient23/x86_64/
48+
# Also see https://yum.oracle.com/oracle-instant-client.html
49+
#
50+
# Base - one of these packages is required to run applications and tools
51+
# oracle-instantclient-basic : Basic Package - All files required to run OCI, OCCI, and JDBC-OCI applications
52+
# oracle-instantclient-basiclite : Basic Light Package - Smaller version of the Basic package, with only English error messages and Unicode, ASCII, and Western European character set support
53+
#
54+
# Tools - optional packages (requires the 'basic' package)
55+
# oracle-instantclient-sqlplus : SQL*Plus Package - The SQL*Plus command line tool for SQL and PL/SQL queries
56+
# oracle-instantclient-tools : Tools Package - Includes Data Pump, SQL*Loader and Workload Replay Client
57+
#
58+
# Development and Runtime - optional packages (requires the 'basic' package)
59+
# oracle-instantclient-devel : SDK Package - Additional header files and an example makefile for developing Oracle applications with Instant Client
60+
# oracle-instantclient-jdbc : JDBC Supplement Package - Additional support for Internationalization under JDBC
61+
# oracle-instantclient-odbc : ODBC Package - Additional libraries for enabling ODBC applications
62+
#
63+
# PREBUILT CONTAINER
64+
# ------------------
65+
#
66+
# A prebuilt container from this Dockerfile is available from
67+
# https://github.com/orgs/oracle/packages/container/package/oraclelinux8-instantclient
68+
# and can be pulled with:
69+
# podman pull ghcr.io/oracle/oraclelinux8-instantclient:23
70+
71+
FROM oraclelinux:8
72+
73+
RUN dnf -y install oracle-instantclient-release-23ai-el8 && \
74+
dnf -y install oracle-instantclient-basic oracle-instantclient-devel oracle-instantclient-sqlplus && \
75+
rm -rf /var/cache/dnf
76+
77+
# Uncomment if the tools package is added
78+
# ENV PATH=$PATH:/usr/lib/oracle/23/client64/bin
79+
80+
CMD ["sqlplus", "-v"]
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# LICENSE UPL 1.0
2+
#
3+
# Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved.
4+
#
5+
# Container image template for Oracle Instant Client
6+
#
7+
# HOW TO BUILD THIS IMAGE AND RUN A CONTAINER
8+
# --------------------------------------------
9+
#
10+
# Execute:
11+
# $ podman build --pull -t oraclelinux9-instantclient:23 .
12+
# $ podman run -ti --rm oraclelinux9-instantclient:23 sqlplus /nolog
13+
#
14+
# NOTES
15+
# -----
16+
#
17+
# Applications using Oracle Call Interface (OCI) 23 can connect to Oracle
18+
# Database 19 or later. Some tools may have other restrictions.
19+
#
20+
# Oracle Instant Client 23 automatically configures the global library search
21+
# path to include Instant Client libraries.
22+
#
23+
# OPTIONAL ORACLE CONFIGURATION FILES
24+
# -----------------------------------
25+
#
26+
# Optional Oracle Network and Oracle client configuration files can be put in the
27+
# default configuration file directory /usr/lib/oracle/23/client64/lib/network/admin.
28+
# Configuration files include tnsnames.ora, sqlnet.ora, oraaccess.xml and
29+
# cwallet.sso. You can use a container volume to mount the directory containing
30+
# the files at runtime, for example:
31+
#
32+
# podman run -v /my/host/wallet_dir:/usr/lib/oracle/23/client64/lib/network/admin:Z,ro . . .
33+
#
34+
# This avoids embedding private information such as wallets in images. If you
35+
# do choose to include network configuration files in images, you can use a
36+
# Dockerfile COPY, for example:
37+
#
38+
# COPY tnsnames.ora sqlnet.ora /usr/lib/oracle/23/client64/lib/network/admin/
39+
#
40+
# There is no need to set the TNS_ADMIN environment variable when files are in
41+
# the container's default configuration file directory, as shown.
42+
#
43+
# ORACLE INSTANT CLIENT PACKAGES
44+
# ------------------------------
45+
#
46+
# Instant Client 23 Packages for Oracle Linux 9 are available from
47+
# https://yum.oracle.com/repo/OracleLinux/OL9/oracle/instantclient23/x86_64/
48+
# Also see https://yum.oracle.com/oracle-instant-client.html
49+
#
50+
# Base - one of these packages is required to run applications and tools
51+
# oracle-instantclient-basic : Basic Package - All files required to run OCI, OCCI, and JDBC-OCI applications
52+
# oracle-instantclient-basiclite : Basic Light Package - Smaller version of the Basic package, with only English error messages and Unicode, ASCII, and Western European character set support
53+
#
54+
# Tools - optional packages (requires the 'basic' package)
55+
# oracle-instantclient-sqlplus : SQL*Plus Package - The SQL*Plus command line tool for SQL and PL/SQL queries
56+
# oracle-instantclient-tools : Tools Package - Includes Data Pump, SQL*Loader and Workload Replay Client
57+
#
58+
# Development and Runtime - optional packages (requires the 'basic' package)
59+
# oracle-instantclient-devel : SDK Package - Additional header files and an example makefile for developing Oracle applications with Instant Client
60+
# oracle-instantclient-jdbc : JDBC Supplement Package - Additional support for Internationalization under JDBC
61+
# oracle-instantclient-odbc : ODBC Package - Additional libraries for enabling ODBC applications
62+
#
63+
# PREBUILT CONTAINER
64+
# ------------------
65+
#
66+
# A prebuilt container from this Dockerfile is available from
67+
# https://github.com/orgs/oracle/packages/container/package/oraclelinux9-instantclient
68+
# and can be pulled with:
69+
# podman pull ghcr.io/oracle/oraclelinux9-instantclient:23
70+
71+
FROM oraclelinux:8
72+
73+
RUN dnf -y install oracle-instantclient-release-23ai-el9 && \
74+
dnf -y install oracle-instantclient-basic oracle-instantclient-devel oracle-instantclient-sqlplus && \
75+
rm -rf /var/cache/dnf
76+
77+
# Uncomment if the tools package is added
78+
# ENV PATH=$PATH:/usr/lib/oracle/23/client64/bin
79+
80+
CMD ["sqlplus", "-v"]

0 commit comments

Comments
 (0)