diff --git a/CHANGELOG.md b/CHANGELOG.md index eee1f9f..e5bd6c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Renamed `/api/v1/repos` namespace to `/api/v1/targets` * Branch name for 'git' targets is now optional; if not provided, the repository will be cloned with the default branch +* Build containers now explicitely set the PATH variable ### Removed diff --git a/src/build/build.v b/src/build/build.v index cd0007f..8048ec4 100644 --- a/src/build/build.v +++ b/src/build/build.v @@ -11,6 +11,9 @@ import models { Target } const ( container_build_dir = '/build' build_image_repo = 'vieter-build' + // Contents of PATH variable in build containers + path_dirs = ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', + '/usr/local/bin', '/usr/bin/site_perl', '/usr/bin/vendor_perl', '/usr/bin/core_perl'] ) // create_build_image creates a builder image given some base image which can @@ -109,7 +112,13 @@ pub fn build_target(address string, api_key string, base_image_id string, target c := docker.NewContainer{ image: '$base_image_id' - env: ['BUILD_SCRIPT=$base64_script', 'API_KEY=$api_key'] + env: [ + 'BUILD_SCRIPT=$base64_script', + 'API_KEY=$api_key', + // `archlinux:base-devel` does not correctly set the path variable, + // causing certain builds to fail. This fixes it. + 'PATH=${build.path_dirs.join(':')}', + ] entrypoint: ['/bin/sh', '-c'] cmd: ['echo \$BUILD_SCRIPT | base64 -d | /bin/bash -e'] work_dir: '/build'