小编L. *_*lor的帖子

在本地构建 docker compose 时如何使用秘密

我最近开始使用 Buildkit 来隐藏一些环境变量,它在 gha 的 prod 中效果很好!

我的 Dockerfile 现在是这样的:

# syntax=docker/dockerfile:1.2
...
RUN --mount=type=secret,id=my_secret,uid=1000 \
    MY_SECRET=$(cat /run/secrets/my_secret) \
    && export MY_SECRET
Run Code Online (Sandbox Code Playgroud)

而我的正面是这样的:

DOCKER_BUILDKIT=1 docker build \
    --secret  id=my_secret,env="MY_SECRET"
Run Code Online (Sandbox Code Playgroud)

当我在我的 Github 操作上运行它时,它运行得很好。

但现在,问题是当我尝试在本地构建它时。执行时docker-compose build失败。当然,因为我没有传递任何秘密,所以我的后端(Dockerfile)将无法从run/secrets/.

到目前为止,我尝试使用以下方法完成本地构建docker-compose build

1. 使用 Docker 秘密:

我基本上尝试这样做:

$ docker swarm init
$ echo "my_secret_value" docker secret create my_secret -
Run Code Online (Sandbox Code Playgroud)

我认为保存秘密可以解决问题,但没有成功。我仍然收到相同的错误消息:

cat:无法打开“/run/secrets/my_secret”:没有这样的文件或目录

  1. 我还尝试在我的 docker-compose 文件中传递秘密,如下所示,但也不起作用:
version: '3'
services:
  app:
    build:
      context: "."
      args:
        - "MY_SECRET"
  secrets:
      - my_secret
secrets: …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-buildkit

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

SQL JOIN与同一个表

我试图在SQL中查询,我无法解决它.我有一张桌子tCliente:

在此输入图像描述

我想要做的是使用相同的表来查找位于同一城市的每对客户端.

我试着这样做:

SELECT DISTINCT c.codiClien, c.nombreClien, c1.codiClien, c1.nombreClien, c.ciudadClien
FROM tCliente c
INNER JOIN tCliente c1 ON c.ciudadClien = c1.ciudadClien
Run Code Online (Sandbox Code Playgroud)

得到这个:

在此输入图像描述

但我应该得到这个:

在此输入图像描述

我知道我必须过滤数据,但我尝试了很多东西,但我找不到解决方案.此外,我试图使用,GROUP BY但它是不可能的.我希望按分组,即这样的事情:

...
GROUP BY c.codiClien, c1.codiClien
Run Code Online (Sandbox Code Playgroud)

但是这样做我在查询中遇到错误.有人可以帮帮我吗?谢谢

注意: 在使用ONINNER JOIN,我想知道是否"可能"这样做或不应该这样做,因为通常的做法是做tb1.id = tb2.id

sql

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

Herolog在Prolog

我正在观察一些问题,例如Logica模糊逻辑和Horn子句,并看到了一些简单的应用程序示例,使用Prolog.

这个问题的原因是因为这些问题也属于Herbrand定理,我认为它比其他定理要复杂一些,至少对我而言,我很难找到与Prolog相关的应用示例.

这就是为什么我想用Prolog提供一些应用实例,而不是那么基本(因为根据定义生成Herbrand模型,是基本规则,并且总是在搜索Herbrand时找到这个应用程序示例),专供Herbrand使用.谢谢

这是Prolog中的示例应用代码:

p(f(X)):- q(g(X)).
p(f(X)):- p(X).
p(a).
q(b).
Run Code Online (Sandbox Code Playgroud)

prolog

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

对列表中的项目进行求和 球拍

我正在 Racket 中处理简单的列表,并且正在执行一个函数来对列表的元素求和。

但我想知道是否有更简单的方法可以做到这一点。

我做了这个功能

(define (mySum L)
  (if (empty? L) 0
      (+ (first L) (mySum (rest L))))
  )
Run Code Online (Sandbox Code Playgroud)

输出:

(mySum '(1 2 3 4))
10
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人知道更简单的方法来做到这一点。我解释一下自己,例如:这是我做的另一个功能

(define (myAppend L1 L2)
  (if (empty? L1) L2
      (cons (car L1) (myAppend (cdr L1) L2)))
  )
Run Code Online (Sandbox Code Playgroud)

但这个功能可以通过这样做更简单地完成:

(define (myAppend L1 L2)
  (append L1 L2)
  )
Run Code Online (Sandbox Code Playgroud)

我的问题是知道是否有一种更简单的方法来计算列表中项目的总和。谢谢

racket

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

Ubuntu 18.04 中的正确 PHP 版本中未安装 gRPC 扩展

我正在尝试按照官方指导安装 gRPC 扩展

我已经遵循了所有步骤,但在最后的步骤中,我得到了这个(我认为稍后会很重要)

$ cd grpc/src/php/ext/grpc
$ phpize
$ ./configure
$ make
$ sudo make install
Run Code Online (Sandbox Code Playgroud)

安装共享扩展:/usr/lib/php/20190902/

在这里,我检查了该文件夹并找到了该grpc.so文件。

此时,我希望安装扩展,我已extension=grpc.sophp.ini(apache2 和 cli)中添加了该扩展。但这不起作用。

我尝试验证它,但它返回 false:var_dump(extension_loaded('grpc'));=>bool(false)

现在,我检查了 apache2 日志文件,看到了以下内容:

PHP警告:PHP启动:无法加载动态库“grpc.so”(尝试过:/usr/lib/php/20180731/grpc.so(/usr/lib/php/20180731/grpc.so:无法打开共享对象文件) :没有这样的文件或目录),/usr/lib/php/20180731/grpc.so

可能的错误?

我认为,在安装 grpc 扩展之后,它就被安装了/usr/lib/php/20190902/(如您之前所见)。但阿帕奇正在试图找到它/usr/lib/php/20180731/grpc.so

我不知道我做错了什么。我认为我编辑了正确的php.ini文件,因为当我这样做时,php_info()我得到了这个:

Configuration File (php.ini) Path   /etc/php/7.3/apache2
Loaded Configuration File   /etc/php/7.3/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.3/apache2/conf.d
Run Code Online (Sandbox Code Playgroud)

php ubuntu grpc

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

标签 统计

docker ×1

docker-buildkit ×1

docker-compose ×1

grpc ×1

php ×1

prolog ×1

racket ×1

sql ×1

ubuntu ×1