首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未找到Gitlab配置项页面

未找到Gitlab配置项页面
EN

Stack Overflow用户
提问于 2018-10-20 03:33:08
回答 2查看 578关注 0票数 4

我正在使用GitlabCI和我自己的Gitlab Runner,基于docker并正确注册

这就是我如何使用docker和docker-compose来运行runner

代码语言:javascript
复制
version: "3"
services: 
  gitlab_runner:
    image: gitlab/gitlab-runner:alpine-v11.3.1
    restart: always
    container_name: gitlab_runner_my_project
    environment:
      - CI_SERVER_URL=https://gitlab.com/
    volumes:
      - ./volumes/runner:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock:rw

这是我的跑步者配置

代码语言:javascript
复制
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner for my project"
  url = "https://gitlab.com/"
  token = "my-token"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "docker:stable-dind"
    privileged = true
    disable_cache = true
    pull_policy = "if-not-present"
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    shm_size = 0
    run_untagged = true
  [runners.cache]
    Type = "s3"
    Path = "cache"
    Shared = true
    [runners.cache.s3]
      ServerAddress = "s3.amazonaws.com"
      AccessKey = "AWSkey"
      SecretKey = "AWSsecret"
      BucketName = "grcache"
      Insecure = false

使用以下代码,我可以运行测试、覆盖、部署,并假设使用覆盖报告发布页面。

代码语言:javascript
复制
stages:
  - test
  - deploy

test:
  image: ruby:2.5.1
  tags:
    - my_tag
  stage: test
  services:
    - mongo:3.6.3
  variables:
    RAILS_ENV: test
    MONGODB_URI: ...
  before_script:
    - bundle install
  script:
    - bundle exec rspec spec/
  artifacts:
    paths:
      - coverage/*

staging_deploy:
    .
    .
    .

pages:
  image: alpine:latest
  tags:
    - my_tag
  stage: deploy
  dependencies:
    - test
  script:
    - cp -r coverage/ public/
  artifacts:
    paths:
      - public
    expire_in: 30 days
  only:
    - test-coverage

测试运行得很好,覆盖范围很广,部署和应该发布的页面也是如此。下图显示了Pages作业的日志。

这些是流水线中显示的作业。

当我访问我的项目的页面部分时,一切看起来都很好。

但是当我想访问这个页面时。BOOOMMMMM

EN

回答 2

Stack Overflow用户

发布于 2018-10-20 15:47:56

为什么要在coverage路径的末尾添加星号?我猜也许一些文件或者整个目录coverage都没有被git追踪到。在这种情况下,从测试阶段更改存储的工件路径可能会有所帮助:

代码语言:javascript
复制
artifacts:
  untracked: true
  paths:
    - coverage/

为了进行快速脏调试,您可以随时将一些脚本添加到.gitlab-ci.yml中,以查看复制操作前后相关目录中的内容:

代码语言:javascript
复制
script:
  - ls -al
  - ls -al coverage
  - ls -al public
  - cp -r coverage/ public/
  - ls -al coverage
  - ls -al public

这可能会让我们对这个问题有一些了解。您的.gitlab-ci.yml看起来很好。

编辑:就像你说的,也许这是权限问题。我怀疑这会有什么帮助,因为这个public目录是一个工件,权限不应该对此有什么影响。但为了检查一下,你可以修改它的权限:

代码语言:javascript
复制
script:
  - chmod -R 755 public
票数 0
EN

Stack Overflow用户

发布于 2019-12-03 02:14:10

您可以通过检查环境变量来检查实际页面的URL:

代码语言:javascript
复制
pages:
  ...
  script:
    - ... others scripts
    - echo $CI_PAGES_URL
  artifacts:
    paths:
      - public
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52898862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档