Skip to content

Commit 5fb7f0d

Browse files
cjbjDjelibeybi
authored andcommitted
Add Instant Client 19 for OL0
Signed-off-by: Christopher Jones <[email protected]>
1 parent 43bb2b8 commit 5fb7f0d

File tree

3 files changed

+106
-9
lines changed

3 files changed

+106
-9
lines changed

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

+11-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
git diff --name-only '${{ github.event.before }}..${{ github.event.after }}' > "${changes}"
4040
if grep -q build-and-push-instantclient-images.yml "${changes}"; then
4141
echo "PUSH: Action updated: rebuilding all images"
42-
ol="oraclelinux7 oraclelinux8"
42+
ol="oraclelinux7 oraclelinux8 oraclelinux9"
4343
ic="19 21"
4444
else
4545
echo "PUSH: Rebuilding changed images only"
@@ -49,6 +49,9 @@ jobs:
4949
if grep -q oraclelinux8 "${changes}"; then
5050
ol="${ol} oraclelinux8"
5151
fi
52+
if grep -q oraclelinux9 "${changes}"; then
53+
ol="${ol} oraclelinux9"
54+
fi
5255
if grep -q /19/ "${changes}"; then
5356
ic="19"
5457
fi
@@ -58,7 +61,7 @@ jobs:
5861
fi
5962
else
6063
echo "MANUAL: Rebuilding all"
61-
ol='oraclelinux7 oraclelinux8'
64+
ol="oraclelinux7 oraclelinux8 oraclelinux9"
6265
ic="19 21"
6366
fi
6467
echo "Rebuilding: ${ol} ${ic}"
@@ -81,6 +84,9 @@ jobs:
8184
do
8285
for i in ${{ steps.linux-version.outputs.ic }}
8386
do
87+
if [[ ${o} = "oraclelinux9" && ${i} != "19" ]]; then
88+
continue
89+
fi
8490
docker build --tag ghcr.io/${{ steps.repo-owner.outputs.repo-owner }}/${o}-instantclient:${i} OracleInstantClient/${o}/${i}
8591
done
8692
done
@@ -91,6 +97,9 @@ jobs:
9197
do
9298
for i in ${{ steps.linux-version.outputs.ic }}
9399
do
100+
if [[ ${o} = 'oraclelinux9' && ${i} != '19' ]]; then
101+
continue
102+
fi
94103
docker push ghcr.io/${{ steps.repo-owner.outputs.repo-owner }}/${o}-instantclient:${i}
95104
done
96105
done

OracleInstantClient/README.md

+11-7
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ packages for ODBC, or to include tools such as Oracle SQL\*Loader.
99

1010
The base images support building and using scripting language APIs that
1111
internally call OCI. These include [Python's python-oracledb Thick
12-
mode](https://oracle.github.io/python-oracledb/), [Node.js's
13-
node-oracledb](https://yum.oracle.com/oracle-linux-nodejs.html), [PHP's
12+
mode](https://oracle.github.io/python-oracledb/), [Node.js's node-oracledb
13+
Thick mode](https://yum.oracle.com/oracle-linux-nodejs.html), [PHP's
1414
OCI8](https://yum.oracle.com/oracle-linux-php.html), [Go's
1515
godror](https://godror.github.io/godror/), [Rust's
1616
rust-oracle](https://github.com/kubo/rust-oracle), and [Ruby's
@@ -35,6 +35,7 @@ have other restrictions.
3535
Pre-built images for Instant Client are in the [GitHub Container
3636
Registry](https://github.com/orgs/oracle/packages):
3737

38+
[oracle/packages/container/package/oraclelinux9-instantclient](https://github.com/orgs/oracle/packages/container/package/oraclelinux9-instantclient)
3839
[oracle/packages/container/package/oraclelinux8-instantclient](https://github.com/orgs/oracle/packages/container/package/oraclelinux8-instantclient)
3940
[oracle/packages/container/package/oraclelinux7-instantclient](https://github.com/orgs/oracle/packages/container/package/oraclelinux7-instantclient)
4041

@@ -70,16 +71,19 @@ Applications using Oracle Call Interface (OCI) 21 can connect to Oracle Database
7071

7172
## Building Oracle Instant Client 19 Images
7273

73-
Change directory to [`oraclelinux7/19`](oraclelinux7/19) or
74-
[`oraclelinux8/19`](oraclelinux8/19) and run:
74+
Change directory to [`oraclelinux7/19`](oraclelinux7/19),
75+
[`oraclelinux8/19`](oraclelinux8/19), or [`oraclelinux9/19`](oraclelinux9/19)
76+
and run:
7577

7678
```bash
7779
docker build --pull -t oracle/instantclient:19 .
7880
```
7981

80-
The build process automatically installs Instant Client using RPMs directly from
81-
the [Oracle Instant Client repository
82-
(OL8)](https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/index.html)
82+
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),
8387
or [Oracle Instant Client repository
8488
(OL7)](https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/index.html).
8589

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

0 commit comments

Comments
 (0)