美文网首页
设置COMPOSE_PROJECT_NAME应避免使用下划线,容

设置COMPOSE_PROJECT_NAME应避免使用下划线,容

作者: xuing | 来源:发表于2023-03-09 10:51 被阅读0次

设置docker compose的COMPOSE_PROJECT_NAME环境变量时,在有多个单词时,尽量不要使用下划线,因为COMPOSE_PROJECT_NAME会作为container_name的一部分。
而container_name在容器网络中会作为“域名”。而域名,是不接受非ldh ascii字符的,即不接受下划线。

例如在创建es容器,并通过域名尝试建立HTTPS连接,就会出现这样的报错了

{"@timestamp":"2023-03-09T11:58:44.679Z", "log.level": "WARN", "message":"caught exception while handling client http traffic, closing connection Netty4HttpChannel{localAddress=/172.18.0.4:9200, remoteAddress=/172.18.0.3:39554}", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[es01][transport_worker][T#2]","log.logger":"org.elasticsearch.http.AbstractHttpServerTransport","elasticsearch.cluster.uuid":"RrJ6TQBKTFOfPOhRpnwR3w","elasticsearch.node.id":"d_QUqkLVSPqnRduAgFH6gQ","elasticsearch.node.name":"es01","elasticsearch.cluster.name":"es-cluster","error.type":"io.netty.handler.codec.DecoderException","error.message":"javax.net.ssl.SSLProtocolException: Illegal server name, type=host_name(0), name=xxxx_cloud_es8-es01, value={616E746979726173705F636C6F75645F6573382D65733031}","error.stack_trace":"io.netty.handler.codec.DecoderException: javax.net.ssl.SSLProtocolException: Illegal server name, type=host_name(0), name=xxxx_cloud_es8-es01, value={616E746979726173705F636C6F75645F6573382D65733031}\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:489)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.DefaultChannelPipelineHeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.AbstractNioByteChannelNioByteUnsafe.read(AbstractNioByteChannel.java:166)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652)\n\tat io.netty.transport@4.1.84.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)\n\tat io.netty.common@4.1.84.Final/io.netty.util.concurrent.SingleThreadEventExecutor4.run(SingleThreadEventExecutor.java:997)\n\tat io.netty.common@4.1.84.Final/io.netty.util.internal.ThreadExecutorMap2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:1589)\nCaused by: javax.net.ssl.SSLProtocolException: Illegal server name, type=host_name(0), name=xxxx_cloud_es8-es01, value={616E746979726173705F636C6F75645F6573382D65733031}\n\tat java.base/sun.security.ssl.ServerNameExtensionCHServerNamesSpec.<init>(ServerNameExtension.java:138)\n\tat java.base/sun.security.ssl.ServerNameExtensionCHServerNameConsumer.consume(ServerNameExtension.java:297)\n\tat java.base/sun.security.ssl.SSLExtension.consumeOnLoad(SSLExtension.java:609)\n\tat java.base/sun.security.ssl.SSLExtensions.consumeOnLoad(SSLExtensions.java:201)\n\tat java.base/sun.security.ssl.ClientHelloT13ClientHelloConsumer.consume(ClientHello.java:1176)\n\tat java.base/sun.security.ssl.ClientHelloClientHelloConsumer.onClientHello(ClientHello.java:840)\n\tat java.base/sun.security.ssl.ClientHelloClientHelloConsumer.consume(ClientHello.java:801)\n\tat java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)\n\tat java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)\n\tat java.base/sun.security.ssl.SSLEngineImplDelegatedTaskDelegatedAction.run(SSLEngineImpl.java:1273)\n\tat java.base/sun.security.ssl.SSLEngineImplDelegatedTaskDelegatedAction.run(SSLEngineImpl.java:1260)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController.java:712)\n\tat java.base/sun.security.ssl.SSLEngineImplDelegatedTask.run(SSLEngineImpl.java:1205)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.runDelegatedTasks(SslHandler.java:1549)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1395)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236)\n\tat io.netty.handler@4.1.84.Final/io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)\n\tat io.netty.codec@4.1.84.Final/io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)\n\t... 16 more\nCaused by: java.lang.IllegalArgumentException: The encoded server name value is invalid\n\tat java.base/javax.net.ssl.SNIHostName.<init>(SNIHostName.java:180)\n\tat java.base/sun.security.ssl.ServerNameExtension$CHServerNamesSpec.<init>(ServerNameExtension.java:131)\n\t... 34 more\nCaused by: java.lang.IllegalArgumentException: Contains non-LDH ASCII characters\n\tat java.base/java.net.IDN.toASCIIInternal(IDN.java:292)\n\tat java.base/java.net.IDN.toASCII(IDN.java:122)\n\tat java.base/javax.net.ssl.SNIHostName.<init>(SNIHostName.java:176)\n\t... 35 more\n"}

但离谱的是,似乎docker有建议使用下划线来命名COMPOSE_PROJECT_NAME,并且你也无法用大小写来区分,之后会都转换为小写的。

相关文章

  • bug合集

    记一个bug :2020-07-01 在使用下划线时遇到换行后下划线不显示的问题,刚开始以为是自己的下划线没有设置...

  • Mac开发-NSButton

    NSButton添加下划线 设置下划线颜色

  • python类的双下划线

    前后各有两个下划线,说明是类的内置方法,用于操作符重载等用途,自己写的函数避免使用前后两个下划线 前面有两个下划线...

  • [代码规范]Alibaba开发规范手册-命名

    命名风格 代码中的命名不能以下划线以及美元符号开始,也不能以下划线与美元符号结束. 变量避免使用拼音,有歧义. 类...

  • iOS OC 设置字体下划线

    //设置字体下划线

  • 【Android】TabLayout 自定义指示器 Indica

    在布局里加入 TabLayout,默认是下划线的样式,可以使用 tabIndicatorGravity 属性设置为...

  • iOS 设置下划线与文字之间的距离

    富文本丰富了UITextView和和UILabel的展示文本的形式设置下划线可以使用富文本进行设置,行了,闲话少说...

  • Kotlin编程规范

    原文地址 命名样式: 默认为Java编码规范,例如: 对于名字使用驼峰式(并且避免使用下划线) 类型首字母大写 方...

  • hcXII(10-5~10-10)

    文字排版--下划线 有些情况下想为文字设置为下划线样式,这样可以在视觉上强调文字,可以使用下面代码来实现: p a...

  • 7/12 Day02 css样式

    文本格式设置 1 文本下划线 text-decoration:设置下划线,删除线,顶划线 属性值: none ...

网友评论

      本文标题:设置COMPOSE_PROJECT_NAME应避免使用下划线,容

      本文链接:https://www.haomeiwen.com/subject/ukpaldtx.html