小编DrT*_*eth的帖子

JFrog Artifactory 错误:将带有清单 v2 架构 1 的 Docker 映像推送到此存储库被阻止

我有两个 docker 存储库在同一个 JFrog 云帐户/实例上运行。一个用于内部候选版本,另一个用于潜在的外部 GC 版本。我希望能够构建 docker 镜像并推送到内部存储库,让 QA/UAT 进城,然后将镜像复制到发布存储库。我希望从源重建图像。不幸的是,当我尝试拉取、标记然后推送图像时,出现错误:

未经授权:将带有清单 v2 架构 1 的 Docker 映像推送到此存储库被阻止。

两个存储库都阻止了模式 1 清单,但我正在向内部存储库推送良好的内容,因此我无法将相同的图像推送到发布存储库没有多大意义。

我已经设置了一个非常简单的测试来确认(实际存储库 URL 被审查):

% docker pull hello-world:latest
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
...
% docker tag hello-world:latest internal-rc.jfrog.io/hello-world:1.0.0-beta
% docker push internal-rc.jfrog.io/hello-world:1.0.0-beta
The push refers to repository [internal-rc.jfrog.io/hello-world]
9c27e219663c: Pushed
...
% docker system prune -a
...
Total reclaimed space: 131.8MB
% docker image pull internal-rc.jfrog.io/hello-world:1.0.0-beta
1.0.0-beta: Pulling from hello-world
0e03bdcc26d7: Pull complete …
Run Code Online (Sandbox Code Playgroud)

docker jfrog-container-registry

9
推荐指数
2
解决办法
6548
查看次数

如何配置 docker 日志记录以有条件地发送到 CloudWatch?

我在 docker-compose.yml 中有以下内容

  web:
    image: my_web
    build:
      context: ./
      dockerfile: web.docker
    container_name: my_web
    networks:
      - front
    ports:
      - "80:8080"
    volumes:
      - wwwlogs:/var/logs/www
    env_file:
      - ${SERVICE_ENVIRONMENT}.env
    links:
      - revproxy
    logging:
      driver: awslogs
      options:
        awslogs-group: my-web-group
        awslogs-region: us-east-1
        awslogs-stream-prefix: my-web
Run Code Online (Sandbox Code Playgroud)

这在生产中运行良好,并按预期将所有内容发送到 CloudWatch。但是,当我想在本地使用相同的 docker 文件(不要发送到 AWS,只需登录到 STDOUT/STDERR)和暂存(我想发送到不同的 awslogs 的地方)时,我不清楚这应该如何工作-组/-前缀)。

有什么想法吗?一般来说,我不喜欢为每个环境使用单独的 docker 文件 - 重复的代码条目增加了某些东西被遗漏或未正确维护的可能性。但是 Docker 似乎有条件地提供东西的能力有限。

docker docker-compose

5
推荐指数
1
解决办法
554
查看次数

如何从 Java 的 SSL 握手中获取调试消息?

我正在尝试使用 Keycloak 保护 Java Spring Boot REST 服务。其中一部分涉及服务和 Keycloak 之间的通信以获取众所周知的 OpenID 配置。

当所有内容都未加密(通过 HTTP)时,一切正常。当我将 SSL 证书添加到混合中时(技术上是在两个服务前面的 nginx 服务器上),我收到 SSL 握手错误。

如果我直接使用浏览器访问 REST 服务或 Keycloak,则浏览器不会报告 SSL 错误。使用curl从其余服务器计算机到Keycloak计算机看起来也很好,并且我尝试让nginx强制TLS 1.2或1.3响应。

当实际的 REST 服务尝试访问 Keycloak 服务时出现的错误如下所示:

2022-03-21 19:30:59.526  WARN 27 --- [nio-8080-exec-3] o.keycloak.adapters.KeycloakDeployment   : Failed to load URLs from https://.../auth/realms/MyRealm/.well-known/openid-configuration

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[na:na]
...
Run Code Online (Sandbox Code Playgroud)

我一直在查看很多其他答案,例如这个答案,但我似乎无法让该服务打印实际异常之外的任何调试信息。我试过了:

  • 添加-Djavax.net.debug=ssl到启动服务器的命令行
  • 添加System.setProperty("javax.net.debug", "ssl");main()应用程序的功能
  • logging.level.javax=TRACE和添加logging.level.net=TRACE到 application.properties

似乎没有什么能带我去任何地方。输出仍然只是服务器启动结束

2022-03-21 19:30:34.219  INFO 27 --- [nio-8080-exec-1] …
Run Code Online (Sandbox Code Playgroud)

java ssl spring-boot

5
推荐指数
1
解决办法
3万
查看次数