1name: Create Oracle container
2runs:
3  using: composite
4  steps:
5    - shell: bash
6      run: |
7        set -x
8        docker run \
9          -e "ORACLE_PASSWORD=pass" \
10          -p 1521:1521 \
11          --name oracle \
12          -h oracle \
13          -d gvenzl/oracle-xe:slim
14
15        mkdir /opt/oracle
16        wget -nv https://download.oracle.com/otn_software/linux/instantclient/2114000/instantclient-basiclite-linux.x64-21.14.0.0.0dbru.zip
17        unzip instantclient-basiclite-linux.x64-21.14.0.0.0dbru.zip && rm instantclient-basiclite-linux.x64-21.14.0.0.0dbru.zip
18        wget -nv https://download.oracle.com/otn_software/linux/instantclient/2114000/instantclient-sdk-linux.x64-21.14.0.0.0dbru.zip
19        unzip instantclient-sdk-linux.x64-21.14.0.0.0dbru.zip && rm instantclient-sdk-linux.x64-21.14.0.0.0dbru.zip
20        mv instantclient_*_* /opt/oracle/instantclient
21        # interferes with libldap2 headers
22        rm /opt/oracle/instantclient/sdk/include/ldap.h
23        # fix debug build warning: zend_signal: handler was replaced for signal (2) after startup
24        echo DISABLE_INTERRUPT=on > /opt/oracle/instantclient/network/admin/sqlnet.ora
25        sudo sh -c 'echo /opt/oracle/instantclient >/etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig'
26
27        sudo mkdir -p /etc/php.d
28        sudo chmod 777 /etc/php.d
29        echo extension=oci8.so > /etc/php.d/oci8.ini
30        echo extension=pdo_oci.so > /etc/php.d/pdo_oci.ini
31