Dmi*_*ich 12 oracle docker dockerfile docker-compose
正如标题所说:如何检查 Oracle 是否在 Docker 中启动?现在我的应用程序尝试创建一个 Hibernate 会话,我得到了
ERROR :
ORA-01033: ORACLE initialization or shutdown in progress
Run Code Online (Sandbox Code Playgroud)
所以我想要某种只有 url 的健康检查。那可能吗?谢谢你!
使用docker-compose.yml官方Oracle docker 镜像,您可以使用checkDBStatus.sh脚本作为运行状况检查。当 db 处于 ORA-01033 状态时,脚本返回非 0。下面是一个例子。healthcheck注意 db 的服务和 tomcat 的depends_on条件的组合service_healthy:
tomcat:
image: "tomcat:9.0"
depends_on:
oracle-db:
condition: service_healthy
links:
- oracle-db
services:
oracle-db:
build:
context: src/main/docker/oracle_db
dockerfile: Dockerfile.xe
mem_reservation: 2g
environment:
- ORACLE_PWD=oracle
volumes:
- oracle-data:/opt/oracle/oradata
healthcheck:
test: [ "CMD", "/opt/oracle/checkDBStatus.sh"]
interval: 2s
volumes:
oracle-data:
Run Code Online (Sandbox Code Playgroud)
我正在使用 wnameless/oracle-xe-11g-r2 这对我有用
version: '3'
services:
db:
image: wnameless/oracle-xe-11g-r2
environment:
- ORACLE_ALLOW_REMOTE=true
ports:
- 49261:1521
volumes:
- ./0_init.sql:/docker-entrypoint-initdb.d/0_init.sql
healthcheck:
test: [ "CMD", "bash", "-c", "echo 'select 1 from dual;' | ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe /u01/app/oracle/product/11.2.0/xe/bin/sqlplus -s USERNAME/PASSWORD@localhost"]
# docker inspect --format "{{json .State.Health }}" myproject_db_1
interval: 10s
timeout: 10s
retries: 60
myservice:
image: xxx
depends_on:
db:
condition: service_healthy
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7783 次 |
| 最近记录: |