小编Jos*_*eia的帖子

Mac M1 上的 Docker 给出:“请求的映像的平台 (linux/amd64) 与检测到的主机平台不匹配”

我想在 MacBook M1 上运行 docker 容器Ganache,但出现以下错误:

The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Run Code Online (Sandbox Code Playgroud)

在此行之后,不会再发生任何其他事情,并且整个过程被卡住,尽管根据活动监视器,qemu-system-aarch64 正在 100% CPU 上运行,直到我按CTRL+ C

我的 docker 文件来自此存储库。遇到相同的问题后,我尝试找出根本原因,并提出了会遇到相同错误的最小设置。

这是以下的输出docker-compose up --build

Building ganache
Sending build context to Docker daemon  196.6kB
Step 1/17 : FROM trufflesuite/ganache-cli:v6.9.1
 ---> 40b011a5f8e5
Step 2/17 : LABEL Unlock <ops@unlock-protocol.com>
 ---> Using cache
 ---> aad8a72dac4e
Step 3/17 : RUN apk add --no-cache …
Run Code Online (Sandbox Code Playgroud)

arm docker docker-compose apple-m1

94
推荐指数
4
解决办法
14万
查看次数

GitLab 运行程序为每个作业拉取镜像

我有一个 GitLab 运行程序用作执行docker程序。我的问题是,它提取我为每个作业定义的图像,这需要更多时间来完成管道

在此输入图像描述

如何缓存图像并添加policyjob的拉取runner?请问有人吗?

gitlab docker

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

我们可以明确捕获 Puppeteer (Chrome/Chromium) 错误 net::ERR_ABORTED 吗?

我们可以明确且具体地捕获 Puppeteer (Chrome/Chromium) 错误吗net::ERR_ABORTED?或者字符串匹配是目前唯一的选择?

page.goto(oneClickAuthPage).catch(e => {
  if (e.message.includes('net::ERR_ABORTED')) {}
})

/*  "net::ERROR_ABORTED" occurs for sub-resources on a page if we navigate
 *  away too quickly. I'm specifically awaiting a 302 response for successful
 *  login and then immediately navigating to the auth-protected page.
 */
await page.waitForResponse(res => res.url() === href && res.status() === 302)
page.goto(originalRequestPage)
Run Code Online (Sandbox Code Playgroud)

理想情况下,这类似于我们可以捕获的潜在事件page.on('requestaborted')

javascript google-chrome chromium puppeteer

13
推荐指数
1
解决办法
4897
查看次数

如何使用 Gitlab CI 在跨两个阶段的工作期间保持 docker 镜像构建?

我在 EC2 上使用 Gitlab 运行程序build,在 ECS 上test使用docker 映像。deploy

我使用“推/拉”逻辑开始我的 CI 工作流程:我在第一阶段构建所有 docker 映像并将它们推送到我的 gitlab 存储库,然后在该阶段拉它们test

我认为通过保持阶段之间构建的图像可以大大缩短工作流程build时间。buildtest

我的gitlab-ci.yml看起来像这样:

stages:
  - build
  - test
  - deploy

build_backend:
  stage: build
  image: docker
  services:
    - docker:dind
  before_script:
    - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
  script:
    - docker build -t backend:$CI_COMMIT_BRANCH ./backend
  only:
    refs:
      - develop
      - master

build_generator:
  stage: build
  image: docker
  services:
    - docker:dind
  before_script:
    - echo …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci gitlab-ci-runner docker-compose

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

Swift - 该服务器的证书无效

如何使用 Swift 在 iOS 上修复此问题?当我发出服务器请求时,出现以下错误:

\n\n
\n

该服务器的证书无效。您可能正在连接到冒充 \xe2\x80\x9c...\xe2\x80\x9d 的服务器,这可能会使您的机密信息面临风险。

\n
\n

request invalidation ios swift server

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

如何更改 RotatingFileHandler 在 Python 中命名文件的方式?

我想改变旋转文件处理程序命名文件的方式。

例如,如果我使用 RotatingFileHandler,它会在达到特定文件大小时将日志文件分开,命名为“日志文件名 + 扩展名编号”,如下所示。

filename.log      #first log file
filename.log.1    #rotating log file1
filename.log.2    #rotating log file2
Run Code Online (Sandbox Code Playgroud)

但是,我希望日志处理程序在每次创建时都为它们命名。例如。

09-01-12-20.log    #first log file
09-01-12-43.log    #rotating log file1
09-01-15-00.log    #rotating log file2
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

编辑:

我不是在问如何创建和命名文件。

我想促进 pythonlogging包做一些类似继承和覆盖的事情logging

python logging

7
推荐指数
1
解决办法
3056
查看次数

Django rest 框架验证 POST 请求参数的最佳方式

当我收到POST关于 Django REST 框架APIView类的请求时,我想过滤/验证传递的参数以防止它们被修改。例如,对于这个序列化程序:

class MediaSerializer(serializers.ModelSerializer):
    class Meta:
        model = Media
        fields = ('id', 'title', 'content', 'url', 'createdByUser', 'karma', 'type', 'issue', 'creationDate', 'updatedDate')
Run Code Online (Sandbox Code Playgroud)

某些参数(如idcreationDate或 )createdByUser不应修改。所以对于我的班级,class MediaDetail(APIView)我有:

def validateRequest(self):
        user = self.request.data.get('createdByUser', None)
        karma = self.request.data.get('karma', None)
        creationDate = self.request.data.get('creationDate', None)

        if user is not None or karma is not None or creationDate is not None:
            return Response(status=status.HTTP_400_BAD_REQUEST)

@method_decorator(login_required)
def post(self, request, pk, format=None):
        self.validateRequest()
        media = self.get_object(pk)
        self._throwIfNotMediaAuthor(media, …
Run Code Online (Sandbox Code Playgroud)

python django django-views django-rest-framework

7
推荐指数
1
解决办法
6432
查看次数

Gitlab CI - 构建镜像并传递到下一阶段?

我正在尝试使用 Gitlab CI 和 PHP/Symfony 项目设置管道。我的.gitlab-ci.yml文件应包含 3 个阶段:

  • 构建 - 构建镜像、设置数据库、安装 Composer 等
  • 测试
    • 单元测试
    • 其他测试(代码质量、安全检查)

我现在让它按预期工作,但只能在每次测试的同时运行构建步骤 - 这意味着我要重复相同的构建步骤两次,并且花费的时间比应有的时间长。

我知道 GitLab 允许您构建 Docker 映像并将其存储在项目中,但目前是否有一种机制来构建 Docker 映像、存储它(作为工件?),然后将其传递到测试中阶段以便他们不需要重复构建?

gitlab docker gitlab-ci

7
推荐指数
1
解决办法
5864
查看次数

删除现有的 docker 容器/镜像 GitLab CI

我有一个包含 3 个步骤的 GitLab CI 管道:

  • build
  • release
  • deploy

在我的deploy脚步中,我;通过 SSH 进入我的 DO 框,登录 GitLab 注册表,下载最新的 docker 镜像并运行它。我还尝试使用以下方法删除现有的容器/图像:

docker rm -f $(docker ps -aq)
docker rmi $(docker images -q)
Run Code Online (Sandbox Code Playgroud)

.gitlab.yml

cache:
  key: "${CI_COMMIT_REF_NAME} node:latest"
  paths:
    - node_modules/

stages:
  - build
  - release
  - deploy

build:
  ...

release:
  ...

deploy:
  stage: deploy
  image: gitlab/dind:latest
  only:
    - master
  environment: production
  when: manual
  before_script:
    - mkdir -p ~/.ssh
    - echo "${DEPLOY_SERVER_PRIVATE_KEY}" | tr -d '\r' > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci

7
推荐指数
1
解决办法
9241
查看次数

如何在 python 脚本中覆盖 CTRL+Y?

我想在我的 python 脚本中实现Ctrl+Y作为热键,但是,Ctrl+Y会导致向我的脚本发送信号,导致其停止。

如何覆盖python 脚本中的Ctrl+组合键?Y

我努力了:

import signal
signal.signal(signal.SIGSTOP, signal.SIG_IGN)
Run Code Online (Sandbox Code Playgroud)

但这会导致RunTimeError (22, 'invalid argument')

python signals hotkeys

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