我在我的应用程序中使用 kibana7.5.2
下面是使用的dockerfile
FROM node:10.15.2-alpine
LABEL maintainer "AppInfra"
ENV VERSION 7.5.2
ENV PATH /usr/share/kibana/bin:$PATH
ADD kibana-${VERSION}-linux-x86_64.tar.gz /usr/share/
RUN mv /usr/share/kibana-$VERSION-linux-x86_64 /usr/share/kibana && \
addgroup -g 1111 myuser && \
adduser -D -u 1111 -G myuser myuser && \
echo "http://mynexusurl:8082/main" >> /etc/apk/repositories && \
echo "http://mynexusurl:8082/community" >> /etc/apk/repositories && \
apk add --no-cache su-exec libc6-compat gcompat && \
sed -i 's,NODE="${DIR}/node/bin/node",NODE="/usr/local/bin/node",g' /usr/share/kibana/bin/kibana-plugin && \
sed -i 's,NODE="${DIR}/node/bin/node",NODE="/usr/local/bin/node",g' /usr/share/kibana/bin/kibana && \
rm -rf /usr/share/kibana/node && \
rm -rf /usr/share/kibana/x-pack* && \
chown -R myuser:myuser /usr/share/kibana
COPY kibana.yml /usr/share/kibana/config/kibana.yml
COPY docker-entrypoint.sh /
RUN chmod 755 /docker-entrypoint.sh
USER myuser
#RUN /usr/share/kibana/bin/kibana 2>&1 | grep -m 1 "Optimization of .* complete in .* seconds"
WORKDIR /usr/share/kibana
EXPOSE 5601
#USER myuser
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["kibana"]
和 entrypoint.sh 是
#!/bin/sh
set -e
# Run as user "kibana" if the command is "kibana"
if [ "$1" = 'kibana' ]
then
if [ "$ELASTICSEARCH_URL" ]
then
sed -ri "s!^(\#\s*)?(elasticsearch\.hosts: ).*!\2 [ \"$ELASTICSEARCH_URL\" ]!" /usr/share/kibana/config/kibana.yml
fi
fi
exec "$@"
环境变量是 ELASTICSEARCH_URL http://clogstore.storage:9200
下面是 kibana.yml 文件
---
elasticsearch.hosts:
- "http://elasticsearch:9200"
logging.verbose: true
server.basePath: /clog
server.host: "0.0.0.0"
server.rewriteBasePath: false
如果我尝试执行 docker run 命令,我的 kibana 容器正在启动,并且在 10 秒内容器将停止并出现以下错误
Error: EFAULT: bad address in system call argument, read
at Object.readSync (fs.js:494:3)
at tryReadSync (fs.js:333:20)
at Object.readFileSync (fs.js:362:19)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:20)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/usr/share/kibana/node_modules/terser-webpack-plugin/dist/minify.js:8:15)
events.js:174
throw er; // Unhandled 'error' event
^
Error: This socket has been ended by the other party
at Socket.writeAfterFIN [as write] (net.js:396:12)
at PoolWorker.writeEnd (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:129:20)
at PoolWorker.dispose (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:273:12)
at WorkerPool.disposeWorkers (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:370:16)
at WorkerPool.terminate (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:305:10)
at WorkerPool.disposeWorkers (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:364:12)
at Timeout.timeout.setTimeout [as _onTimeout] (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:358:44)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
Emitted 'error' event at:
at Socket.writeAfterFIN [as write] (net.js:399:8)
at PoolWorker.writeEnd (/usr/share/kibana/node_modules/thread-loader/dist/WorkerPool.js:129:20)
[... lines matching original stack trace ...]
at Timer.processTimers (timers.js:223:10)
奇怪的是,如果我取消注释 dockerfile 中的以下行
运行 /usr/share/kibana/bin/kibana 2>&1 | grep -m 1 ".* 的优化在 .* 秒内完成"
我在 7.4.2 kibana 中验证了它的工作正常,如果我尝试在 kibana 7.5.2 中做同样的事情,docker build 会在这个特定的行等待,即使在 3 小时后 docker build 也没有进行。
我想知道为什么我会收到这个错误。
这条特定线的意义是什么
如何制作我的 kibana 容器
如果我应该添加这个特定的行,那么如何让它快速构建。构建甚至没有完成一次:(
请帮我解决这个问题。
我对 kibana 很陌生,我被卡住了。我需要用 kibana 7.5.2 制作我的容器。任何早期帮助将不胜感激
提前致谢
注意:我尝试使用 kibana 7.5.1 aswel。遇到同样的问题。