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