gitlab.com/jfprevost/gitlab-runner-notlscheck@v11.11.4+incompatible/docs/faq/README.md (about)

     1  # GitLab Runner FAQ
     2  
     3  Some Frequently Asked Questions about GitLab Runner.
     4  
     5  ## What does `coordinator` mean?
     6  
     7  The `coordinator` is the GitLab installation from which a job is requested.
     8  
     9  In other words, runners are isolated (virtual) machines that pick up jobs
    10  requested by their `coordinator`.
    11  
    12  ## Where are logs stored when run as a service?
    13  
    14  + If the GitLab Runner is run as service on Linux/OSX  the daemon logs to syslog.
    15  + If the GitLab Runner is run as service on Windows it logs to System's Event Log.
    16  
    17  ## Run in `--debug` mode
    18  
    19  Is it possible to run GitLab Runner in debug/verbose mode. From a terminal, do:
    20  
    21  ```
    22  gitlab-runner --debug run
    23  ```
    24  
    25  ## I get a PathTooLongException during my builds on Windows
    26  
    27  This is caused by tools like `npm` which will sometimes generate directory structures
    28  with paths more than 260 characters in length. There are two possible fixes you can
    29  adopt to solve the problem.
    30  
    31  ### a) Use Git with core.longpaths enabled
    32  
    33  You can avoid the problem by using Git to clean your directory structure, first run
    34  `git config --system core.longpaths true` from the command line and then set your
    35  project to use *git fetch* from the GitLab CI project settings page.
    36  
    37  ### b) Use NTFSSecurity tools for PowerShell
    38  
    39  The [NTFSSecurity](https://ntfssecurity.codeplex.com/) PowerShell module provides
    40  a *Remove-Item2* method which supports long paths. The Gitlab CI Multi Runner will
    41  detect it if it is available and automatically make use of it.
    42  
    43  ## I'm seeing `x509: certificate signed by unknown authority`
    44  
    45  Please [See the self-signed certificates](../configuration/tls-self-signed.md)
    46  
    47  ## I get `Permission Denied` when accessing the `/var/run/docker.sock`
    48  
    49  If you want to use Docker executor,
    50  and you are connecting to Docker Engine installed on server.
    51  You can see the `Permission Denied` error.
    52  The most likely cause is that your system uses SELinux (enabled by default on CentOS, Fedora and RHEL).
    53  Check your SELinux policy on your system for possible denials.
    54  
    55  ## The Docker executor gets timeout when building Java project.
    56  
    57  This most likely happens, because of the broken AUFS storage driver:
    58  [Java process hangs on inside container](https://github.com/docker/docker/issues/18502).
    59  The best solution is to change the [storage driver](https://docs.docker.com/engine/userguide/storagedriver/selectadriver/)
    60  to either OverlayFS (faster) or DeviceMapper (slower).
    61  
    62  Check this article about [configuring and running Docker](https://docs.docker.com/engine/articles/configuring/)
    63  or this article about [control and configure with systemd](https://docs.docker.com/engine/articles/systemd/).
    64  
    65  ## I get 411 when uploading artifacts.
    66  
    67  This happens due to fact that runner uses `Transfer-Encoding: chunked` which is broken on early version of Nginx (http://serverfault.com/questions/164220/is-there-a-way-to-avoid-nginx-411-content-length-required-errors).
    68  
    69  Upgrade your Nginx to newer version. For more information see this issue: https://gitlab.com/gitlab-org/gitlab-runner/issues/1031
    70  
    71  ## I can't run Windows BASH scripts; I'm getting `The system cannot find the batch label specified - buildscript`.
    72  
    73  You need to prepend `call` to your batch file line in .gitlab-ci.yml so that it looks like `call C:\path\to\test.bat`. Here
    74  is a more complete example:
    75  
    76  ```
    77  before_script:
    78    - call C:\path\to\test.bat
    79  ```
    80  
    81  Additional info can be found under issue [#1025](https://gitlab.com/gitlab-org/gitlab-runner/issues/1025).
    82  
    83  ## My gitlab runner is on Windows. How can I get colored output on the web terminal?
    84  
    85  **Short answer:**
    86  
    87  Make sure that you have the ANSI color codes in your program's output. For the purposes of text formatting, assume that you're
    88  running in a UNIX ANSI terminal emulator (because that's what the webUI's output is).
    89  
    90  **Long Answer:**
    91  
    92  The web interface for gitlab-ci emulates a UNIX ANSI terminal (at least partially). The `gitlab-runner` pipes any output from the build
    93  directly to the web interface. That means that any ANSI color codes that are present will be honored.
    94  
    95  Windows' CMD terminal (before Win10 ([source](http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-(v1511)-Console-Host-Enhancements)))
    96  does not support ANSI color codes - it uses win32 ([`ANSI.SYS`](https://en.wikipedia.org/wiki/ANSI.SYS)) calls instead which are **not** present in
    97  the string to be displayed. When writing cross-platform programs, a developer will typically use ANSI color codes by default and convert
    98  them to win32 calls when running on a Windows system (example: [Colorama](https://pypi.python.org/pypi/colorama)).
    99  
   100  If your program is doing the above, then you need to disable that conversion for the CI builds so that the ANSI codes remain in the string.
   101  
   102  See issue [#332](https://gitlab.com/gitlab-org/gitlab-runner/issues/332) for more information.
   103  
   104  ## "warning: You appear to have cloned an empty repository."
   105  
   106  When running `git clone` using HTTP(s) (with GitLab Runner or manually for
   107  tests) and you see the following output:
   108  
   109  ```bash
   110  $ git clone https://git.example.com/user/repo.git
   111  
   112  Cloning into 'repo'...
   113  warning: You appear to have cloned an empty repository.
   114  ```
   115  
   116  Make sure, that the configuration of the HTTP Proxy in your GitLab server
   117  installation is done properly. Especially if you are using some HTTP Proxy with
   118  its own configuration, make sure that GitLab requests are proxied to the
   119  **GitLab Workhorse socket**, not to the **GitLab unicorn socket**.
   120  
   121  Git protocol via HTTP(S) is resolved by the GitLab Workhorse, so this is the
   122  **main entrypoint** of GitLab.
   123  
   124  If you are using Omnibus GitLab, but don't want to use the bundled Nginx
   125  server, please read [using a non-bundled web-server][omnibus-ext-nginx].
   126  
   127  In gitlab-recipes repository there are [web-server configuration
   128  examples][recipes] for Apache and Nginx.
   129  
   130  If you are using GitLab installed from source, please also read the above
   131  documentation and examples, and make sure that all HTTP(S) traffic is going
   132  through the **GitLab Workhorse**.
   133  
   134  See [an example of a user issue][1105].
   135  
   136  [omnibus-ext-nginx]: http://doc.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server
   137  [recipes]: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server
   138  [1105]: https://gitlab.com/gitlab-org/gitlab-runner/issues/1105
   139  
   140  ## `"launchctl" failed: exit status 112, Could not find domain for`
   141  
   142  This message may occur when you try to install GitLab Runner on OSX. Make sure
   143  that you manage GitLab Runner service from the GUI Terminal application, not
   144  the SSH connection.
   145  
   146  ## `Failed to authorize rights (0x1) with status: -60007.`
   147  
   148  If your Runner is stuck on the above message when using OSX, there are two
   149  causes to why this happens:
   150  
   151  1. Make sure that your user can perform UI interactions:
   152  
   153      ```bash
   154      DevToolsSecurity -enable
   155      sudo security authorizationdb remove system.privilege.taskport is-developer
   156      ```
   157  
   158      The first command enables access to developer tools for your user.
   159      The second command allows the user who is member of the developer group to
   160      do UI interactions, e.g., run the iOS simulator.
   161  
   162      ---
   163  
   164  2. Make sure that your Runner service doesn't use `SessionCreate = true`.
   165     Previously, when running GitLab Runner as a service, we were creating
   166     `LaunchAgents` with `SessionCreate`. At that point (**Mavericks**), this was
   167     the only solution to make Code Signing work. That changed recently with
   168     **OSX El Capitan** which introduced a lot of new security features that
   169     altered this behavior.
   170     Since GitLab Runner 1.1, when creating a `LaunchAgent`, we don't set
   171     `SessionCreate`. However, in order to upgrade, you need to manually
   172     reinstall the `LaunchAgent` script:
   173  
   174      ```
   175      gitlab-runner uninstall
   176      gitlab-runner install
   177      gitlab-runner start
   178      ```
   179  
   180      Then you can verify that `~/Library/LaunchAgents/gitlab-runner.plist` has
   181      `SessionCreate` set to `false`.
   182  
   183  ## `The service did not start due to a logon failure` error when starting service on Windows
   184  
   185  When installing and starting the GitLab Runner service on Windows you can
   186  meet with such error:
   187  
   188  ```
   189  $ gitlab-runner install --password WINDOWS_MACHINE_PASSWORD
   190  $ gitlab-runner start
   191  $ FATA[0000] Failed to start GitLab Runner: The service did not start due to a logon failure.
   192  ```
   193  
   194  This error can occur when the user used to execute the service doesn't have
   195  the `SeServiceLogonRight` permission. In such case you need to add this
   196  permission for the chosen user and then try to start the service again.
   197  
   198  You can add `SeServiceLogonRight` in two ways:
   199  
   200  1. Manually using Administrative Tools:
   201     - Go to _Control Panel > System and Security > Administrative Tools_,
   202     - open the _Local Security Policy_ tool,
   203     - chose the _Security Settings > Local Policies > User Rights Assignment_ on the
   204       list on the left,
   205     - open the _Log on as a service_ on the list on the right,
   206     - click on the _Add User or Group..._ button,
   207     - add the user ("by hand" or using _Advanced..._ button) and apply the settings.
   208  
   209       > **Notice:** According to [Microsoft's documentation][microsoft-manually-set-seservicelogonright]
   210       > this should work for: Windows Vista, Windows Server 2008, Windows 7, Windows 8.1,
   211       > Windows Server 2008 R2, Windows Server 2012 R2, Windows Server 2012, Windows 8
   212  
   213       > **Notice:** The _Local Security Policy_ tool may be not available in some
   214       > Windows versions - for example in "Home Edition" variant of each version.
   215  
   216  1. From command line, using the `Ntrights.exe` tool:
   217     - Download tools from [Microsoft's download site][microsoft-ntrights-download],
   218     - execute `ntrights.exe ntrights +r SeServiceLogonRight -u USER_NAME_HERE` (remember,
   219       that you should provide a full path for `ntrights.exe` executable **or** add that
   220       path to system's `PATH` environment variable).
   221  
   222       > **Notice:** The tool was created in 2003 and was initially designed to use
   223       > with Windows XP and Windows Server 2003. On [Microsoft sites][microsoft-ntrights-usage-on-win7]
   224       > you can find an example of usage `Ntrights.exe` that applies to Windows 7 and Windows Server 2008 R2.
   225       > This solution is not tested and because of the age of the software **it may not work
   226       > on newest Windows versions**.
   227  
   228  After adding the `SeServiceLogonRight` for the user used in service configuration,
   229  the command `gitlab-runner start` should finish without failures
   230  and the service should be started properly.
   231  
   232  [microsoft-manually-set-seservicelogonright]: https://technet.microsoft.com/en-us/library/dn221981
   233  [microsoft-ntrights-download]: https://www.microsoft.com/en-us/download/details.aspx?id=17657
   234  [microsoft-ntrights-usage-on-win7]: https://technet.microsoft.com/en-us/library/dd548356(WS.10).aspx
   235  
   236  ## `zoneinfo.zip: no such file or directory` error when using `OffPeakTimezone`
   237  
   238  In `v1.11.0` we made it possible to configure the timezone in which `OffPeakPeriods`
   239  are described. This feature should work on most Unix systems out of the box. However on some
   240  Unix systems, and probably on most non-Unix systems (including Windows, for which we're providing
   241  Runner's binaries), when used, the Runner will crash at start with an error similar to:
   242  
   243  ```
   244  Failed to load config Invalid OffPeakPeriods value: open /usr/local/go/lib/time/zoneinfo.zip: no such file or directory
   245  ```
   246  
   247  The error is caused by the `time` package in Go. Go uses the IANA Time Zone database to load
   248  the configuration of the specified timezone. On most Unix systems, this database is already present on
   249  one of well-known paths (`/usr/share/zoneinfo`, `/usr/share/lib/zoneinfo`, `/usr/lib/locale/TZ/`).
   250  Go's `time` package looks for the Time Zone database in all those three paths. If it doesn't find any
   251  of them, but the machine has a configured Go development environment (with a proper `$GOPATH`
   252  present for Runner's process), then it will fallback to the `$GOROOT/lib/time/zoneinfo.zip` file.
   253  
   254  If none of those paths are present (for example on a production Windows host) the above error is thrown.
   255  
   256  In case your system has support for the IANA Time Zone database, but it's not available by default, you
   257  can try to install it. For Linux systems it can be done for example by:
   258  
   259  ```bash
   260  # on Debian/Ubuntu based systems
   261  sudo apt-get install tzdata
   262  
   263  # on RPM based systems
   264  sudo yum install tzdata
   265  
   266  # on Linux Alpine
   267  sudo apk add -U tzdata
   268  ```
   269  
   270  If your system doesn't provide this database in a _native_ way, then you can make `OffPeakTimezone`
   271  working by following the steps below:
   272  
   273  1. Downloading the [`zoneinfo.zip`][zoneinfo-file]. Starting with version v9.1.0 you can download
   274     the file from a tagged path. In that case you should replace `latest` with the tag name (e.g., `v9.1.0`)
   275     in the `zoneinfo.zip` download URL.
   276  
   277  1. Store this file in a well known directory. We're suggesting to use the same directory where
   278     the `config.toml` file is present. So for example, if you're hosting Runner on Windows machine
   279     and your config file is stored at `C:\gitlab-runner\config.toml`, then save the `zoneinfo.zip`
   280     at `C:\gitlab-runner\zoneinfo.zip`.
   281  
   282  1. Set the `ZONEINFO` environment variable containing a full path to the `zoneinfo.zip` file. If you
   283     are starting the Runner using the `run` command, then you can do this with:
   284  
   285      ```bash
   286      ZONEINFO=/etc/gitlab-runner/zoneinfo.zip gitlab-runner run [other options ...]
   287      ```
   288  
   289      or if using Windows:
   290  
   291      ```powershell
   292      C:\gitlab-runner> set ZONEINFO=C:\gitlab-runner\zoneinfo.zip
   293      C:\gitlab-runner> gitlab-runner run [other options ...]
   294      ```
   295  
   296      If you are starting the Runner as a system service then you will need to update/override
   297      the service configuration in a way that is provided by your service manager software
   298      (unix systems) or by adding the `ZONEINFO` variable to the list of environment variables
   299      available for Runner's user through System Settings (Windows).
   300  
   301  [zoneinfo-file]: https://gitlab-runner-downloads.s3.amazonaws.com/latest/zoneinfo.zip