代码之家  ›  专栏  ›  技术社区  ›  joe

gitlab runner无法使用'pyenv,pip,…`

  •  1
  • joe  · 技术社区  · 8 年前

    我在德班。和 sudo su 成为 root 用户。之后我执行命令 gitlab-runner register .但出于某些原因。我得到的孤立环境与通过ssh登录到服务器时不同。

    gitlab-runner --version
    Version:      10.8.0
    Git revision: 079aad9e
    Git branch:
    GO version:   go1.8.7
    Built:        2018-05-22T03:24:56+00:00
    OS/Arch:      linux/amd64
    

    当我把 env before_script 我发现了不同的环境。 然后我把 source ~/.bashrc 为了它。也不做任何改变。 如何让 shell 跑步者使用我的正常登录用户环境?

    更新:
    环境 )我得到这个输出

    $ env
    CI_RUNNER_EXECUTABLE_ARCH=linux/amd64
    CI_COMMIT_TITLE=add config
    CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx
    CI_BUILD_REF_NAME=master
    CI_REGISTRY_PASSWORD=xxxxxxxxxxxxxxxxxxxx
    CI_RUNNER_TAGS=provider, oauth, mp
    CI_SHARED_ENVIRONMENT=true
    CI_JOB_NAME=test
    CI_SERVER_VERSION=10.8.4
    DJANGO_SETTINGS_MODULE=config.settings.local
    LANG=en_US.UTF-8
    GITLAB_CI=true
    CI_SERVER_REVISION=2268d0c
    CI_PROJECT_VISIBILITY=private
    OLDPWD=/home/gitlab-runner
    INVOCATION_ID=7dd516612949410c8ca8e4e59696f9fd
    CI_COMMIT_SHA=9030892858b5ca92c7b36a81f573f187e6d14090
    CI_COMMIT_MESSAGE=add config
    
    CI_BUILD_STAGE=test
    CI_PROJECT_URL=https://mbx-git.magicboxasia.com/sarit/mhu_ped_oauth_provider
    CI_COMMIT_REF_SLUG=master
    CI_SERVER_NAME=GitLab
    CI_RUNNER_VERSION=10.8.0
    CI_BUILD_NAME=test
    CI=true
    XDG_SESSION_ID=c5
    CI_REGISTRY_USER=gitlab-ci-token
    USER=gitlab-runner
    CI_PROJECT_ID=96
    CI_PIPELINE_ID=4399
    CI_COMMIT_DESCRIPTION=
    PWD=/home/gitlab-runner/builds/f304ea76/0/sarit/mhu_ped_oauth_provider
    GITLAB_FEATURES=
    HOME=/home/gitlab-runner
    JOURNAL_STREAM=8:19161
    CI_REGISTRY=docker-registry.magicboxasia.com
    CI_BUILD_TOKEN=xxxxxxxxxxxxxxxxxxxx
    CI_BUILD_ID=5514
    CONFIG_FILE=/etc/gitlab-runner/config.toml
    GITLAB_USER_NAME=Sarit Ritwirune
    CI_PROJECT_PATH_SLUG=sarit-mhu-ped-oauth-provider
    DATABASE_URL=postgres://postgres:postgres@postgres:5432/mp_oauth_provider
    POSTGRES_DB=poinkdb
    GITLAB_USER_EMAIL=sarit@magicboxasia.com
    CI_COMMIT_REF_NAME=master
    CI_REGISTRY_IMAGE=docker-registry.magicboxasia.com/sarit/mhu_ped_oauth_provider
    CI_SERVER_TLS_CA_FILE=/home/gitlab-runner/builds/f304ea76/0/sarit/mhu_ped_oauth_provider.tmp/CI_SERVER_TLS_CA_FILE
    CI_RUNNER_ID=42
    CI_SERVER=yes
    CI_JOB_ID=5514
    CI_REPOSITORY_URL=https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@mbx-git.magicboxasia.com/sarit/mhu_ped_oauth_provider.git
    MAIL=/var/mail/gitlab-runner
    SHELL=/bin/bash
    GITLAB_USER_LOGIN=sarit
    CI_RUNNER_REVISION=079aad9e
    CI_CONFIG_PATH=.gitlab-ci.yml
    CI_PROJECT_NAME=mhu_ped_oauth_provider
    POSTGRES_PASSWORD=postgres
    POSTGRES_USER=postgres
    SHLVL=2
    CI_RUNNER_DESCRIPTION=MP OAuth Provider
    CI_PROJECT_PATH=sarit/mhu_ped_oauth_provider
    LOGNAME=gitlab-runner
    XDG_RUNTIME_DIR=/run/user/999
    GITLAB_USER_ID=39
    CI_BUILD_BEFORE_SHA=e36e718d09f89095972ddf60ebf1fc1931282ae4
    CI_BUILD_REF=9030892858b5ca92c7b36a81f573f187e6d14090
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    CI_PIPELINE_SOURCE=push
    CI_PROJECT_NAMESPACE=sarit
    CI_PROJECT_DIR=/home/gitlab-runner/builds/f304ea76/0/sarit/mhu_ped_oauth_provider
    CI_JOB_STAGE=test
    CI_BUILD_REF_SLUG=master
    _=/usr/bin/env
    $ python -V
    Python 2.7.13
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   joe    8 年前

    我不确定这是否是最佳实践,但我直接设置了 PATH gitlab-runner 使用和我一样的方法 ssh

    variables:
        PATH: "/home/gitlab-runner/.pyenv/plugins/pyenv-virtualenv/shims:/home/gitlab-runner/.pyenv/shims:/home/gitlab-runner/.pyenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
    
        2
  •  0
  •   TrebledJ    7 年前

    类似于直接在Gitlab CI中设置变量…

    job: 
      variables:
        MY_CUSTOM_VARIABLE:my_variable
    

    在项目目录中(与.gitlab ci.yml级别相同):

    $ mkdir .ci
    $ vi .ci/env
    

    .gitlab-ci.yml

    before_script:
      - . .ci/env
    

    export MY_CUSTOM_VARIABLE=my_variable
    

    export PYENV_ROOT="$HOME/.pyenv"
    export PATH=/home/gitlab-runner/.pyenv/shims:/home/gitlab-runner/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    export PIPENV_PYTHON="$PYENV_ROOT/shims/python"