Skip to content

🐳 Regression: Oracle NoSQL Docker image no longer works with single docker run command #2974

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
otaviojava opened this issue May 15, 2025 · 2 comments
Assignees
Labels
question The issue is a question

Comments

@otaviojava
Copy link

Description:

Previously, we could run a local Oracle NoSQL instance quickly using a single Docker command. This was extremely helpful for local development and trying out NoSQL features before using the cloud service.

The original command worked flawlessly:

docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce

However, with recent changes, this command no longer starts the service correctly.

Steps to Reproduce:

  1. Run the following command (as per previous working usage):

    docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce
  2. Notice that the container does not start properly or does not expose the expected service on http://localhost:8080.

  3. Tried the updated version from the [official README](https://github.com/oracle/docker-images/blob/main/NoSQL/README.md):

    docker run -d --name kvlite --hostname=kvlite --env KV_PROXY_PORT=8080 -p 8080:8080 ghcr.io/oracle/nosql:latest-ce
  4. Still does not respond or expose the expected proxy endpoint.

Expected Behavior:
A local instance should be accessible via a simple Docker command, as before. This makes it easy for developers to test Oracle NoSQL locally before integrating with cloud services.

Actual Behavior:
The Docker container starts (in some cases), but no service is available on port 8080. The original convenience of quick start via a single command has been broken.

Why This Matters:

The ability to spin up a local NoSQL instance with a one-liner Docker command is essential for:

  • Developer productivity
  • Prototyping
  • Education and demos
  • Lowering the barrier for adoption

It might be related to this bug as well:

#2972

@dario-vega
Copy link
Member

dario-vega commented May 15, 2025

I am running the commands you are providing, and it works

docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce
26ed7efecd8a8fa9a3abee3410947ec90d02d621a2edf2774192067ff5227a94

Validating the kvlite and the proxy started

$ docker logs oracle-instance
Waiting for kvstore to start...
SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
Waiting for kvstore to start...
Created new kvlite store with args:
-root /kvroot -store kvstore -host 26ed7efecd8a -port 5000 -admin-web-port 5999 -secure-config disable
Starting Proxy
Proxy started:
async=false
helperHosts=26ed7efecd8a:5000
httpPort=8080
httpsPort=0
idleReadTimeout=0
kvConsistency=NONE_REQUIRED
kvDurability=COMMIT_NO_SYNC
kvRequestLimit=-1
kvRequestTimeout=-1
monitorStatsEnabled=false
numAcceptThreads=3
numRequestThreads=32
proxyType=KVPROXY
sslProtocols=TLSv1.2,TLSv1.1,TLSv1
storeName=kvstore
verbose=true
proxyVersion=null
kvclientVersion=24.4.9

Validating the communication intra containers - printing the version, the current tables

$ docker run --rm -ti --link oracle-instance:store oracle/nosql:ce  java -Xmx64m -Xms64m -jar lib/kvstore.jar version
24.4.9 2024-11-21 17:06:06 UTC  Build id: 95fa28ea4441 Edition: Community

$ docker run --rm -ti --link oracle-instance:store oracle/nosql:ce   java -jar lib/sql.jar -helper-hosts store:5000 -store kvstore show tables
tables
  SYS$IndexStatsLease
  SYS$MRTableAgentStat
  SYS$MRTableInfo
  SYS$MRTableInitCheckpoint
  SYS$PartitionStatsLease
  SYS$SGAttributesTable
  SYS$StreamRequest
  SYS$StreamResponse
  SYS$TableMetadata
  SYS$TableStatsIndex
  SYS$TableStatsPartition
  SYS$TopologyHistory

Validating that port 8080 is exposed and working

$ docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                    NAMES
81aba7826af3        ghcr.io/oracle/nosql:latest-ce   "bash -c ./start-kvl…"   43 seconds ago      Up 42 seconds       0.0.0.0:8080->8080/tcp   oracle-instance

$ sudo netstat -antpl  | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      31670/docker-proxy

Download, unzip NoSQL SDK for Java and compile the NoSQL SDK for Java examples. We will use java programs to test the configuration. Other language SDKs are available which you can use, however, we are providing Java examples.

cd $HOME
rm -rf oracle-nosql-java-sdk-5.4.17.zip oracle-nosql-java-sdk
curl -L https://github.com/oracle/nosql-java-sdk/releases/download/v5.4.17/oracle-nosql-java-sdk-5.4.17.zip \
-o oracle-nosql-java-sdk-5.4.17.zip
unzip oracle-nosql-java-sdk-5.4.17.zip
cd oracle-nosql-java-sdk/examples/
javac -cp ../lib/nosqldriver.jar *.java
cd $HOME

Test using the example provided in the Oracle NoSQL SDK

$ cd $HOME/oracle-nosql-java-sdk/examples/
$ java -cp .:../lib/nosqldriver.jar  BasicTableExample http://localhost:8080 -useKVProxy

Creating table audienceData
Created table audienceData
Put row: {"cookie_id":123,"audience_data":{"audience_segment":{"sports_lover":"2018-11-30","book_reader":"2018-12-01"},"ipaddr":"10.0.00.xxx"}} result=non-null Version
Got row: {"cookie_id":123,"audience_data":{"audience_segment":{"sports_lover":"2018-11-30","book_reader":"2018-12-01"},"ipaddr":"10.0.00.xxx"}}
Inserted row via query, result:
        {"NumRowsInserted":1}
Got row inserted by query: {"cookie_id":106,"audience_data":{"audience_segment":{"foodie":"2020-06-01","sports_lover":"2020-05-10"},"ipaddr":"10.0.00.xxx"}}
Put row from json: {"cookie_id":456,"audience_data":{"ipaddr":"10.0.00.yyy","audience_segment":{"sports_lover":"2019-01-05","foodie":"2018-12-31"}}}
Got row inserted as JSON: {"cookie_id":456,"audience_data":{"audience_segment":{"sports_lover":"2019-01-05","foodie":"2018-12-31"},"ipaddr":"10.0.00.yyy"}}
Query results for SELECT * from audienceData WHERE cookie_id = 456:
        {"cookie_id":456,"audience_data":{"audience_segment":{"foodie":"2018-12-31","sports_lover":"2019-01-05"},"ipaddr":"10.0.00.yyy"}}
Deleted key {"cookie_id":456} result=true
Dropping table audienceData

$ cd -

Could you validate the same steps?

@dario-vega
Copy link
Member

NB: It is not related to #2972 - not the same product.

@dario-vega dario-vega self-assigned this May 15, 2025
@dario-vega dario-vega added the question The issue is a question label May 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question The issue is a question
Projects
None yet
Development

No branches or pull requests

2 participants