小编fuz*_*zes的帖子

在 gitlab ci before_script 中使用 apt 时找不到 apt

我使用 gitlab ci 来构建 docker 镜像,我想安装 python。当我构建时,以下是我的 gitlab-ci.yml:

image: docker:stable
stages:
  - test
  - build

before-script:
  - apt install -y python-dev python pip

test1:
  stage: test
  script:
  ...
    - pytest

build:
  stage: build
  - docker build -t $IMAGE_TAG .
  - docker push $IMAGE_TAG
Run Code Online (Sandbox Code Playgroud)

但我的工作失败了

/bin/sh: eval: line : apt: not found
ERROR: Job failed: exit code 127
Run Code Online (Sandbox Code Playgroud)

我也试过 apt-get install 但结果是一样的。

我如何安装python?

docker gitlab-ci gitlab-ci-runner

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

gitlab ci缓存没有匹配的文件

我尝试使用gitlabRunner构建APK

当我构建apk时,我不想每次都下载所有构建文件

所以我尝试缓存.gradle / caches和.gradle / wrappers

以下是我的gitlab-ci.yml

sdk_build_job
  image: myimage:latest
  stage: sdk-build
  script:
    ...
  cache:
    key: gradle-cache
      - /root/.gradle/caches
      - /root/.gradle/wrapper
Run Code Online (Sandbox Code Playgroud)

但是创建gradle-cache总是发出警告

Creating cache gradle-cache...
WARNING: /root/.gradle/caches: no matching files       
WARNING: /root/.gradle/wrapper: no matching files      
Archive is up to date!                             
Run Code Online (Sandbox Code Playgroud)

我不知道为什么找不到缓存和包装器目录

当我进入Docker容器并找到文件夹时,位置很好

root@runner-3d9fa57b-project-4-concurrent-0:~/.gradle# pwd
/root/.gradle
root@runner-3d9fa57b-project-4-concurrent-0:~/.gradle# ls -al
total 28
drwxr-xr-x 7 root root 4096 Dec 28 02:21 .
drwx------ 1 root root 4096 Dec 28 02:19 ..
drwxr-xr-x 6 root root 4096 Dec 28 02:20 caches
drwxr-xr-x 3 …
Run Code Online (Sandbox Code Playgroud)

gitlab-ci gitlab-ci-runner

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

nestjs context.swithToHttp().getRequest() 返回未定义

我想为 Graphql 创建 RolesGuard

我创建角色装饰器如下

export const Roles = (...roles: string[]) => SetMetadata('roles', roles);
Run Code Online (Sandbox Code Playgroud)

我创建 GqlAuthGuard 和 RolesGuard 如下

gql-gurad.ts

@Injectable()
export class GqlAuthGuard extends AuthGuard('jwt') {
    getRequest(context: ExecutionContext){
        const ctx = GqlExecutionContext.create(context);
        return ctx.getContext().req;
    }
}

role-guard.ts

@Injectable()
export class RolesGuard implements CanActivate {
constructor(private readonly reflector: Reflector) {}

    canActivate(context: ExecutionContext): boolean {
        const roles = this.reflector.get<string[]>('roles', context.getHandler());
        if (!roles) {
            return true;
        }
        const request = context.switchToHttp().getRequest();
        const user = request.user;

        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但行const request = …

graphql nestjs

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

我无法在 docker 中安装特定版本(1.0.2g)的 openssl

我想在 docker 镜像中安装 openssl 版本 1.0.2g 所以我写道Dockerfile

RUN apt-get update
RUN apt-get install -y build-essential cmake zlib1g-dev libcppunit-dev git subversion && rm -rf /var/lib/apt/lists/*
RUN wget https://www.openssl.org/source/openssl-1.0.2g.tar.gz -O - | tar -xz
WORKDIR /openssl_1.0.2g
RUN ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
Run Code Online (Sandbox Code Playgroud)

并尝试构建它:

Removing intermediate container 0666b2c5021f
 ---> e92f7ed1e3a0
Step 11/14 : WORKDIR /openssl_1.0.2g
Removing intermediate container c8e083d9a453
 ---> 112f18273e8f
Step 12/14 : RUN ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
 ---> Running in 4871c00e5c35
/bin/sh: 1: ./config: not found
The command '/bin/sh -c ./config --prefix=/usr/local/openssl …
Run Code Online (Sandbox Code Playgroud)

openssl docker dockerfile

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

测试Drf序列化程序验证的最佳方法是什么

我认为两种方法可以测试Drf序列化程序验证

以下是我的序列化器验证代码

def validate_md5(self, md5):
    if len(md5) != 40:
        raise serializers.ValidationError("Wrong md5")
    return md5
Run Code Online (Sandbox Code Playgroud)

这是测试代码

1)

def test_wrong_validate_md5_2(self):
    url = reverse('apk-list')
    response = self.client.post(url, {'md5':'test'}, format='json')
    self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

2)

def test_wrong_validate_md5(self):
    serializer = ApkSerializer(data=self.apk)

    if len(self.apk.get('md5')) != 40:
        self.assertEqual(serializer.is_valid(), False)
    else:
        self.assertEqual(serializer.is_valid(), True)
Run Code Online (Sandbox Code Playgroud)

有什么比另一个更好的?还是有最好的解决方案?

我练习测试驱动的编码 是否需要编写上述测试代码

testing django validation serializer django-rest-framework

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

我如何将论证传递给芹菜任务?

这是我的芹菜任务

def task_a(arg1, arg2, arg3, arg4)
Run Code Online (Sandbox Code Playgroud)

我称这个任务如下

arg1是列表,arg2,3,4是整数

task_a.apply_async(arg1, arg2, arg3, arg4)
Run Code Online (Sandbox Code Playgroud)

我收到了一条错误消息

    File "/opt/envDjango/lib/python3.5/site-packages/celery/app/task.py", line 518, in apply_async
    check_arguments(*(args or ()), **(kwargs or {}))
    TypeError: functools.partial object argument after ** must be a mapping, not int
Run Code Online (Sandbox Code Playgroud)

我怎么能解决这个问题?

我试着写一本字典并改变论点位置,他们都失败了......

django celery

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

因为registerEnumType,jest中无法测试

我正在使用 typegraphql,并且我使用 resgiterEnumType 注册 DayOfWeek 枚举类型。

以下是我的 enum 和 registerEnumType 函数,它们在一个文件中。

export enum DayOfWeek {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
}

registerEnumType(DayOfWeek, {
    name: "DayOfWeekType", // this one is mandatory
});
Run Code Online (Sandbox Code Playgroud)

当我运行程序时它运行良好。但是当我运行 jest test 时,我收到如下消息

Looks like you've forgot to provide experimental metadata API polyfill.
  12 | }
  13 | 
> 14 | registerEnumType(DayOfWeek, {
     | ^
  15 |     name: "DayOfWeekType", // this one is mandatory
  16 | });
  17 | 
Run Code Online (Sandbox Code Playgroud)

如果我将 enum 和 registerEnumType 放在同一个文件中,则运行良好,测试失败。

如果我将 enum …

jestjs typegraphql

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

您的集群身份验证出现问题。当我进行 gitlab 和 k8s 集群集成时

我使用 kops 在 aws 中创建 k8s 集群

我写了 kubernetes 集群名称: test.fuzes.io

api 网址: https://api.test.fuzes.io/api/v1

我用结果填写 CA 证书字段

kubectl get secret {secrete_name} -o jsonpath="{['data']['ca\.crt']}" | base64 --decode

最后我用结果填充服务令牌字段

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}')

但是当我保存更改时,我收到消息

There was a problem authenticating with your cluster. Please ensure your CA Certificate and Token are valid.

我无法安装带有 kubernetes 错误的舵机:404

我真的不知道我做错了什么。请帮我....

gitlab-ci kubernetes kops

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

如何重定向?映射?Django 中的网址

我有民意调查应用程序

以下是我的根网址

urlpatterns = [
    path('poll/', include('myproject.poll.urls')),
]
Run Code Online (Sandbox Code Playgroud)

我有应用程序网址

router = DefaultRouter()
router.register(r'', PollViewSet)

urlpatterns = [
    path('', include(router.urls))
]
Run Code Online (Sandbox Code Playgroud)

我使用 ViewSet 所以我可以使用reverse('poll-list')reverse('poll-detail')...

我可以访问xxx.xxx.xxx.xxx/poll并且xxx.xxx.xxx.xxx/poll/1/......

xxx.xxx.xxx.xxx/api/v1/poll/但我想在访问时重定向(映射?)网址xxx.xxx.xxx.xxx/poll

我不想更改现有的网址。

因为我想将多个应用程序的视图捆绑到一个 api url 文件中。

我怎样才能做到这一点?最好的方法是什么?

python django django-rest-framework

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