为什么我的 Docker-Compose 在初始化我的 oracle 数据库后卡住了,没有继续进行下一个服务?
Why is my Docker-Compose getting stuck after initializing my oracle database and doesn't proceed to the next service?
我正在尝试使用 docker compose 更新我项目的 docker,使用 Oracle Database 19c 企业版、WebLogic Server 12.1.4 和 Java Server JRE java 8.
我已经编写了一个脚本来为数据库和 weblogic 服务器创建基础图像,然后继续使用 docker-compose up 来编写我编写的 yaml。
项目结构由 oracle 基础映像组成,从 github 上的官方 oracle 映像中提取,然后我创建了自己的 Dockerfile 来扩展这些映像。我的问题出在 Oracle DB Dockerfile 上,我不确定如何继续。此时安装完成数据库后卡住了,没有继续安装weblogic,甚至没有创建单独的容器..
ENV ORACLE_PWD="password"
ENV ORACLE_SID=ORCLCDB
ENV ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
ADD db-assets /tmp/db-assets
COPY ./wait_db.sh $ORACLE_BASE/
COPY ./runDBscripts.sh $ORACLE_BASE/
COPY ./runOracle.sh $ORACLE_BASE/
COPY ./startDB.sh $ORACLE_BASE/
USER root
RUN chmod ug+x $ORACLE_BASE/*.sh
USER oracle
RUN $ORACLE_BASE/runOracle.sh &&\
$ORACLE_BASE/wait_db.sh && \
$ORACLE_BASE/runDBscripts.sh
CMD $ORACLE_BASE/wait_db.sh
我已经尝试了很多组合来让它工作。我是否在不应该添加的地方添加了任何命令?
docker-compose.yml:
version: '2'
services:
db:
build:
context: db/
dockerfile: Dockerfile
image: oracle/database
ports:
- "10000:1521"
- "10001:22"
shm_size: 1G
app:
build:
context: app/
dockerfile: Dockerfile
image: oracle/weblogic:12.2.1.4
ports:
- 10003:7001
- 10004:7002
depends_on:
- db
command: >
/bin/bash -c "
echo sleeping while db is starting;
sleep 90;
#script for starting a managed server on weblogic@
"
我花了很多时间来尝试完成这项工作,但我真的很沮丧,我不能把它做好。任何帮助将不胜感激
找到了!我让事情变得更复杂,我的解决方案是让 Dockerfile 尽可能简单,只复制数据库脚本。并切换到用户 oracle。我也关注了这个 post
设置健康检查,一切正常。
我正在尝试使用 docker compose 更新我项目的 docker,使用 Oracle Database 19c 企业版、WebLogic Server 12.1.4 和 Java Server JRE java 8. 我已经编写了一个脚本来为数据库和 weblogic 服务器创建基础图像,然后继续使用 docker-compose up 来编写我编写的 yaml。
项目结构由 oracle 基础映像组成,从 github 上的官方 oracle 映像中提取,然后我创建了自己的 Dockerfile 来扩展这些映像。我的问题出在 Oracle DB Dockerfile 上,我不确定如何继续。此时安装完成数据库后卡住了,没有继续安装weblogic,甚至没有创建单独的容器..
ENV ORACLE_PWD="password"
ENV ORACLE_SID=ORCLCDB
ENV ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
ADD db-assets /tmp/db-assets
COPY ./wait_db.sh $ORACLE_BASE/
COPY ./runDBscripts.sh $ORACLE_BASE/
COPY ./runOracle.sh $ORACLE_BASE/
COPY ./startDB.sh $ORACLE_BASE/
USER root
RUN chmod ug+x $ORACLE_BASE/*.sh
USER oracle
RUN $ORACLE_BASE/runOracle.sh &&\
$ORACLE_BASE/wait_db.sh && \
$ORACLE_BASE/runDBscripts.sh
CMD $ORACLE_BASE/wait_db.sh
我已经尝试了很多组合来让它工作。我是否在不应该添加的地方添加了任何命令? docker-compose.yml:
version: '2'
services:
db:
build:
context: db/
dockerfile: Dockerfile
image: oracle/database
ports:
- "10000:1521"
- "10001:22"
shm_size: 1G
app:
build:
context: app/
dockerfile: Dockerfile
image: oracle/weblogic:12.2.1.4
ports:
- 10003:7001
- 10004:7002
depends_on:
- db
command: >
/bin/bash -c "
echo sleeping while db is starting;
sleep 90;
#script for starting a managed server on weblogic@
"
我花了很多时间来尝试完成这项工作,但我真的很沮丧,我不能把它做好。任何帮助将不胜感激
找到了!我让事情变得更复杂,我的解决方案是让 Dockerfile 尽可能简单,只复制数据库脚本。并切换到用户 oracle。我也关注了这个 post