小编Bri*_*its的帖子

如何修复阿尔卑斯山损坏的 tzdata2020c 时区数据库?

我只是偶然发现了用于 alpine 的 tzdata2020c 包的一个错误。在 2020 年 10 月 25 日下星期日的夏令时计划更改后,它不会计算欧洲/柏林的正确时间。 tzdata2020c 版本使用 CEST,例如 2020 年 10 月 31 日和欧洲/柏林时区,而 CET 是正确的。 

有谁知道如何手动添加新版本的 tzdata2020d 数据库,该数据库可在此处获得

我用 Go 编写的应用程序在 2020 年 10 月 31 日使用 tzdata2020c 错误地将 CEST 用于欧洲/柏林: tzdata2020c

同一应用程序在 2020 年 10 月 31 日使用 tzdata2020a 正确使用了欧洲/柏林的 CET: tzdata2020a

go alpine-linux tzdata

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

日期转换代码在不同机器上表现不同

我有以下代码:

package main

import (
    "fmt"
    "time"
)

func main() {
    loc := "Jan 06"
    date := "2020-12-31 16:00:00 +0000 UTC"
    layout := "2006-01-02 15:04:05 -0700 MST"
    t, err := time.Parse(layout, date)
    if err != nil {
        fmt.Print("Error")
    }

    fmt.Println(t)
    GetFormattedDate(t, loc)
}

func GetFormattedDate(date time.Time, layout string) (string, error) {
    
    fmt.Println("\n\n====================================================")
    fmt.Println("time.Now(): ", time.Now())
    fmt.Println("time.Now().Location(): ", time.Now().Location())
    fmt.Println("Converting: ", date)
    configLocale := "Singapore"
    fmt.Println("configLocale: ", configLocale)

    loc, err := time.LoadLocation(configLocale)
    fmt.Println("loc: ", loc)
    if err != nil {
        return …
Run Code Online (Sandbox Code Playgroud)

linux date go docker

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

在 gin 路由器中使用现有的会话 cookie

我正在 Go / Gin 中构建一个简单的网络服务器,我想使用 cookie 来创建一个持久会话,以便在用户离开或跨多个页面导航时保持用户登录状态。

理想情况下,流程如下:

  • 初始化路由器
  • 检查现有的 cookie
    • 如果 cookie 存在,则获取 cookie 令牌值
    • 如果 cookie 不存在,则创建一个新的随机令牌值
  • 使用令牌值发起会话
  • 使用与路由器的会话

稍后的代码将验证 cookie 令牌值是否已过期和/或对应于数据库中的活动用户。

我尝试过的最新迭代是:

router := gin.Default();

token_value := func(c *gin.Context) string {

    var value string

    if cookie, err := c.Request.Cookie("session"); err == nil {
      value = cookie.Value
    } else {
      value = RandToken(64)
    }
    return value
  }

  cookie_store := cookie.NewStore([]byte(token_value))
  router.Use(sessions.Sessions("session",cookie_store))
Run Code Online (Sandbox Code Playgroud)

但这会失败,因为 token_value 是 func(c *gin.Context) 字符串类型,而不是字符串。

我知道我在这里缺少一些东西,并且我希望获得一些有关如何解决此问题的指导。

谢谢!

go go-gin

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

Docker 运行错误:exec /app/backend/server:没有这样的文件或目录

我在尝试运行 Docker 容器时遇到问题。我从 Dockerfile 构建图像:

docker build -t server -f ./backend/Dockerfile .   
Run Code Online (Sandbox Code Playgroud)

运行:

docker run -it -p 8081:8081 server
Run Code Online (Sandbox Code Playgroud)

出现错误:

exec /app/backend/server: no such file or directory
Run Code Online (Sandbox Code Playgroud)

当我从 Docker Desktop 进行检查时,我会在容器内看到该文件存在,并且已按其应有的位置创建到该位置。

我还尝试从 golang:1.21-alpine更改第二阶段,但仍然遇到相同的错误。

通过FROM gcr.io/distroless/base-debian11我得到:

/app/backend/server: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /app/backend/server)
/app/backend/server: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /app/backend/server)
/app/backend/server: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /app/backend/server)
Run Code Online (Sandbox Code Playgroud)

我看了这里这里并尝试了很多东西。我对 Docker 比较陌生,不知道如何解决这个问题。有人可以帮助我了解可能导致此错误的原因以及如何解决它吗?提前致谢!

我的 Dockerfile 如下:

# Stage 1: Building the …
Run Code Online (Sandbox Code Playgroud)

linux go docker

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

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

标签 统计

go ×4

docker ×2

linux ×2

alpine-linux ×1

date ×1

flutter ×1

go-gin ×1

tzdata ×1

visual-studio-code ×1