我用以下命令在docker中启动oracle数据库(在操作系统Windows 10上(:
docker run -d --env-file C:(...)ora_db_env.dat -p 9445:1521 --name oracle-std --shm-size="8g" container-registry.oracle.com/database/standard
工作正常。现在我想使用docker compose来做同样的事情。https://www.composerize.com/给了我以下docker-compose.yml文件,所以它缺少"shm-size"的信息,所有信息都来自我的"ora_db_env.dat"(见下文(:
version: '3.3'
services:
oracle-std-service:
ports:
- '9445:1521'
container_name: oracle-std-service-container
image: container-registry.oracle.com/database/standard
(...other services...)
"ora_db_env.dat"的内容:
DB_SID=OraDoc
DB_PASSWD=MyPasswd123
DB_DOMAIN=my.domain.com
DB_BUNDLE=basic
我试着把那些缺失的信息包括在内。。。
version: "3.9"
services:
oracle-std-service:
container_name: oracle-std-service-container
ports:
- '9445:1521'
image: container-registry.oracle.com/database/standard
environment:
shm-size: 8g
DB_SID: OraDoc
DB_PASSWD: MyPasswd123
DB_DOMAIN: my.domain.com
DB_BUNDLE: basic
但我只得到以下输出:
config DB failed, please check log /home/oracle/setup/log/configDB.log for details
不知道(在谷歌上搜索后(在哪里可以在Windows中找到这个文件,我不知道该怎么办。
由于缺少日志,无法100%确定这一点,但由于shm-size配置,这可能会失败
shm_size是一个docker配置,因此应在服务级别声明,而不是作为环境声明
喜欢
version: "3.9"
services:
oracle-std-service:
shm_size: 8g
container_name: oracle-std-service-container
ports:
- '9445:1521'
image: container-registry.oracle.com/database/standard
参见docker compose 中的SHM_SIZE
日志位置在容器内,如果容器仍在运行,您可以使用docker exec访问它,使用docker ps -a
找到它的名称
docker exec --it <oracle container name> bash
如果它已经停止,那么你必须启动它并使用exec
进行访问
是。。。能够在Arun Sa的帮助下查看日志,我确认问题是shm_size参数在docker-compose.yml中的错误位置。问题解决了,非常感谢:
version: "3.9"
services:
oracle-std-service:
shm_size: '8gb'
container_name: oracle-std-service-container
ports:
- '9445:1521'
image: container-registry.oracle.com/database/standard
environment:
DB_SID: OraDoc
DB_PASSWD: MyPasswd123
DB_DOMAIN: my.domain.com
DB_BUNDLE: basic