前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Bug周刊】Vol.4

【Bug周刊】Vol.4

作者头像
客怎眠qvq
发布2024-08-07 14:01:25
840
发布2024-08-07 14:01:25
举报
文章被收录于专栏:某菜鸟の小屋

【Bug周刊】Vol.4

客怎眠qvq2024-06-122024-07-26

前言

最近开发中遇到很多相同的问题,下意识去翻自己的历史记录,但又没能快速定位。我的trilium一直用来记录自己的周报和相关教程,对于常见的bug和修复方案也找不到合适的地方,只能穿插在日报的历史中,随时间沉没。无意间翻到子舒的奇趣周刊,Bug周刊也由此而生。

又鸽了一个月🤣🤣🤣

CI镜像拉取优化

问题描述

公司有两台美国的服务器,负责拉取镜像进行打包(打包机),gitlab 仓库代码自动构建时,偶尔会出现网络问题,无法拉取对应镜像,过一段时间就又正常了。

解决方案

首先排除host的问题,添加对应配置后问题没有改变。

代码语言:javascript
复制
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled (Client.Timeout exceeded while awaiting headers)

其次,寻找对应CI配置,是否能够满足 先检查本地再获取远端镜像 的要求,我找到了 pull_policy 配置。

代码语言:javascript
复制
build:
  image:
    name: 
    pull_policy: if-not-present # available: always, if-not-present, never
  script:
  - ...

同时修改 gitlab-runner 对应的的配置文件 config.toml,补充 pull_policy 配置。

如果这样还不能避免服务器公网拉取镜像的网络波动,可以将镜像私有化,拉取镜像后打上自己的 tag,推送到私有仓库,修改 hosts 配置走内网。

参考链接

引用站外地址

gitlab-runner config for docker runner

CSDN

引用站外地址

pull policy for image in gitlab-ci.yml

gitlab

resources: Input length = 1

问题描述

CI打包和本地打包时均报错,[ERROR] Failed to execute goal org.apache.maven.plugins: maven-resources-plugin:3.2.0:resources (default-resources) on project module-xxxx: Input length = 1 -> [Help 1],检查模块的pom文件,发现maven没有对resources的插件进行配置。

解决方案

在该模块的 pom.xml 中添加如下配置:

代码语言:javascript
复制
<plugins>
    <!-- 原有插件配置 -->

    <!-- 补充配置 -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>

</plugins>

参考链接

引用站外地址

maven copy-resources input length = 1

CSDN

‘readonly’ option is set (add ! to override)

问题描述

修改公司服务器 hosts 配置,打算走私有的docker镜像仓库,但是保存时终端报只读的提示 E45: 'readonly' option is set (add ! to override)

解决方案

学习两条命令,:q!sudo !!

代码语言:javascript
复制
:q! // vim 强制退出
sudo !! // 使用sudo来重新执行上一条命令,即重新 vim /etc/hosts 编辑hosts文件

参考链接

引用站外地址

readonly option is set (add ! to override)

CSDN

No converter found capable of converting

问题描述

代码语言:javascript
复制
No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.test.cloud.service.testmoudle.contract.testDto]

在对Java项目某一微服务进行数据结构优化时,报错 JPA 的转换无法正常映射。我希望能够用一个结构体作为 Query 查询后的结果类型,但是事与愿违,规范上只能使用类似 Map<String, Object> 的方式接受数据,经过chatgpt后,解决方案如下。

解决方案

reposity中修改原来的查询语句,在sql中直接对类型转换,同时补充dto的构造方法

代码语言:javascript
复制
// testRepository 代码虚构 仅说明逻辑

// 原sql语句
@Query(value = "\n" +
  "SELECT \n" +
  "projectInfo.id as id, \n" +
  "area.code as code \n" +
  "FROM projectInfo \n" +
  "INNER JOIN area \n" +
  "ON projectInfo.contactId = area.contactId")
List<testDto> findCode2();

// 修改后的sql语句 直接在sql中转换
@Query("SELECT new com.test.cloud.service.testmoudle.contract.testDto(projectInfo.id, area.code) \n" +
  "FROM projectInfo \n" +
  "INNER JOIN area \n" +
  "ON projectInfo.contactId = area.contactId")
List<testDto> findCode();
代码语言:javascript
复制
// testDto
public class testDto implements Serializable {

  private Integer id;
  private String code;

  // 补充构造方法
  public testDto(Integer id, String code) {
    this.id = id;
    this.code = code;
  }
}
代码语言:javascript
复制
// 这样就能在Impl中接受对应reposity的方法结果
List<testDto> areaCodeList = testRepository.findCode();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【Bug周刊】Vol.4
    • 前言
      • CI镜像拉取优化
        • 问题描述
        • 解决方案
        • 参考链接
      • resources: Input length = 1
        • 问题描述
        • 解决方案
        • 参考链接
      • ‘readonly’ option is set (add ! to override)
        • 问题描述
        • 解决方案
        • 参考链接
      • No converter found capable of converting
        • 问题描述
        • 解决方案
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档