问题描述
我从自定义程序集构建我的 karaf 图像。下面是Dockerfile
:
FROM adoptopenjdk:11-jre-hotspot
ARG KaraF_disT=karaf
ARG ASSEMBLY_FILE=*.zip
ENV KaraF_INSTALL_PATH=/opt \
KaraF_disT=${KaraF_disT}
ENV PATH=$PATH:${KaraF_INSTALL_PATH}/${KaraF_disT}/bin \
MysqL_DB_HOST=${MysqL_DB_HOST:-db}
copY ${ASSEMBLY_FILE} ${KaraF_INSTALL_PATH}
copY docker-entrypoint.sh
RUN env && apt update && apt install -y unzip netcat && \
unzip -q ${KaraF_INSTALL_PATH}/*.zip -d ${KaraF_INSTALL_PATH}/. && \
rm ${KaraF_INSTALL_PATH}/*.zip && \
chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["karaf","run"]
EXPOSE 8181 8101
在 docker-entrypoint.sh
中,它会做一些基本的检查。
步骤1:检查数据库端口是否正在侦听。
第 2 步:检查 karaf 是否正在运行。
第 3 步:如果没有安装 bundles(通常在第一次启动时),在后台启动 karaf 并执行命令以通过 client
安装我的功能。然后我收到一条 Closed
错误消息,即使使用 until
语法尝试多次仍然无效。所以现在它只是一次又一次地在行 echo "Try to install feature..."
处存货。
这是docker-entrypoint.sh
#!/bin/bash
if [ "${1}" == "karaf" ]; then
shift
until nc -z -v -w30 $MysqL_DB_HOST $MysqL_DB_PORT > /dev/null 2>&1
do
echo "Waiting for database connection..."
# wait for 5 seconds before check again
sleep 5
done
# check bundle installed or not
if [ ! -d "${KaraF_INSTALL_PATH}/${KaraF_disT}/data/cache" ]; then
echo "Bundle not installed."
start
sleep 5
RUNNING=$(status)
while [ "$RUNNING" == "Not Running ..." ]
do
echo "Waiting for karaf startup..."
sleep 3
RUNNING=$(status)
done
# running ok,try to install feature
until client -p karaf "feature:install myfeature" > /dev/null 2>&1
do
echo "Try to install feature..."
sleep 5
done
echo "Feature installed."
# client -p karaf "feature:install myfeature" <------Here,i got a "Closed" error message
# if [ $? -eq 0 ]; then
# echo "Feature installing..."
# sleep 30
# echo "Feature installed."
# fi
stop
echo "Stopping karaf server..."
sleep 10
fi
set -- karaf "$@"
fi
exec "$@"
我试试docker exec -it myapp client -p karaf
,正常登录。我不知道是怎么回事。 do client
命令时会显示一些日志。
2021-04-02T15:16:06,976 | INFO | sshd-SshServer[43c01dfd]-nio2-thread-2 | ServerUserAuthService | 42 - org.apache.sshd.core - 1.7.0 | Session karaf@/127.0.0.1:48622 authenticated
2021-04-02T15:16:13,106 | INFO | sshd-SshServer[43c01dfd]-nio2-thread-1 | ServerUserAuthService | 42 - org.apache.sshd.core - 1.7.0 | Session karaf@/127.0.0.1:48624 authenticated
2021-04-02T15:16:19,270 | INFO | sshd-SshServer[43c01dfd]-nio2-thread-2 | ServerUserAuthService | 42 - org.apache.sshd.core - 1.7.0 | Session karaf@/127.0.0.1:48626 authenticated
Apache karaf 版本:4.2.8 Docker 版本:20.10.5,社区
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)