# Oracle 19c Docker Compose Setup Guide

# Oracle 19c Docker Compose Setup Guide

# Oracle 19c Docker Compose Setup Guide

## Prerequisites

- Docker CE (latest)
- Docker Compose plugin
- CentOS 8 / RHEL 8 / Fedora / Ubuntu
- Oracle 19c installer file: `LINUX.X64_193000_db_home.zip`

## 1. Prepare Directory Structure

```bash
mkdir -p /home/kcon/oracle-docker-compose
cd /home/kcon/oracle-docker-compose
mkdir -p oradata

```

## 2. Fix Permissions for Oracle User (UID 54321)

```bash
sudo chown -R 54321:54321 oradata
sudo chmod -R 775 oradata

```

## 3. Build the Oracle 19c Docker Image

Place your Oracle ZIP file at:

```
/home/kcon/oracle19cdocker/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/

```

Run the build:

```bash
cd /home/kcon/oracle19cdocker/docker-images/OracleDatabase/SingleInstance/dockerfiles
./buildContainerImage.sh -v 19.3.0 -e

```

## 4. Create `docker-compose.yaml`

```yaml
version: "3.8"

services:
  oracle19c:
    image: oracle/database:19.3.0-ee
    container_name: oracle19c
    environment:
      ORACLE_PWD: "StrongPass123"
      ORACLE_PDB: "ORCLPDB1"
    ports:
      - "1521:1521"
      - "5500:5500"
    volumes:
      - ./oradata:/opt/oracle/oradata
    restart: unless-stopped

```

## 5. Start Oracle Database

```bash
docker compose up -d
docker logs -f oracle19c

```

You should see output:

```
Database created.
The Oracle base remains unchanged with value /opt/oracle

```

## 6. Connect to Oracle

### Inside container:

```bash
docker exec -it oracle19c bash
sqlplus sys/StrongPass123@ORCLPDB1 as sysdba

```

### From DBeaver / SQL Developer

<table id="bkmrk-setting-value-host-l"><thead><tr><th>Setting</th><th>Value</th></tr></thead><tbody><tr><td>Host</td><td>localhost</td></tr><tr><td>Port</td><td>1521</td></tr><tr><td>Service Name</td><td>ORCLPDB1</td></tr><tr><td>User</td><td>sys</td></tr><tr><td>Password</td><td>StrongPass123!</td></tr><tr><td>Role</td><td>SYSDBA</td></tr></tbody></table>

## 7. Troubleshooting

### Permission error:

```
Cannot create directory "/opt/oracle/oradata/ORCLCDB"

```

Fix:

```bash
sudo chown -R 54321:54321 oradata
sudo chmod -R 775 oradata

```

### sqlplus not found:

Rebuild the image and ensure Oracle ZIP file is correct.

---

## Completed!

You now have a fully working Oracle 19c running via Docker Compose.