小编Muh*_*qui的帖子

错误:buildx 失败:错误:无法解决:无法推送 ghcr.io/:意外状态:403 禁止

我正在使用 GitHub Actions 来构建简单的 docker 映像并将其推送到 GitHub 容器注册表。我的存储库位于组织内部,并且我已在组织级别配置了机密。

该作业成功登录到 ghcr,但是当它尝试将其推送到 ghcr 时,会出现以下错误:

错误:buildx 失败,原因:错误:无法解决:无法推送 ghcr.io/:意外状态:403 禁止。

github-actions.yml

name: Build and Push Freeradius proxy
on:
  push:
    branches:
      - '*'
jobs:
  build-and-push:
    runs-on: ubuntu-latest
    permissions:
      packages: write
    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.GCR_TOKEN}}
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf
      - name: Login to GHCR
        uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c
        with:
          registry: ghcr.io
          username: ${{ secrets.REPO_OWNER }}
          password: ${{ secrets.GCR_TOKEN }}
      - name: Build and Push Docker Image
        uses: …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github gitlab docker github-actions

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

结构体和枚举之间的区别

我对《Rust Book》中的这一说法感到困惑:

\n
\n

使用枚举而不是结构还有另一个优点:每个变体可以具有不同类型和数量的关联数据。版本四类型 IP 地址始终有四个数字组成部分,其值介于 0 到 255 之间。如果我们想将 V4 地址存储为四个u8值,但仍将 V6 地址表示为一个String值,我们将\xe2\x80\x99t 无法与一个 struct。枚举可以轻松处理这种情况:

\n
#![allow(unused_variables)]\nfn main() {\n    enum IpAddr {\n        V4(u8, u8, u8, u8),\n        V6(String),\n    }\n\n    let home = IpAddr::V4(127, 0, 0, 1);\n\n    let loopback = IpAddr::V6(String::from("::1"));\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n

但是,当我尝试使用结构将 V4 地址存储为四个u8值但仍将 V6 地址表示为一个String值时,它也执行相同的操作,没有任何错误。

\n
#[derive(Debug)]\nstruct IpAddr {\n    V4:(u8, u8, u8, u8),\n    V6:String,\n}\n\nfn main () {\n    let home = IpAddr {\n        V4: (127, …
Run Code Online (Sandbox Code Playgroud)

rust

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

在 Rust 中计算素数

我正在尝试用 Rust 计算素数,但遇到一些问题。我收到两个错误。我不明白该值如何返回到主函数。

fn main() {
    let x = is_prime(25); //function calling
    println!("{}", x);
}

fn is_prime(n: u32) -> bool {
    let mut result: bool = for a in 2..n {
        result = if n % a == 0 { false } else { true };
    };
    result
}
Run Code Online (Sandbox Code Playgroud)
fn main() {
    let x = is_prime(25); //function calling
    println!("{}", x);
}

fn is_prime(n: u32) -> bool {
    let mut result: bool = for a in 2..n {
        result = if …
Run Code Online (Sandbox Code Playgroud)

rust

2
推荐指数
1
解决办法
9144
查看次数