fix: op not permitted in self-hosted runner (#359)
In self hosted runners in fedora with SELinux enabled, it sometimes gives a random error ``` Error: lsetxattr /var/run/docker.sock: operation not permitted Error: The process '/usr/bin/docker' failed with exit code 126 ``` This seems to happen with docker.sock which is a link to /run/podman/podman.sock looks like lsetxattr is broken for links.pull/361/head
parent
efa2eddee9
commit
8ed8ccb20c
|
@ -3286,13 +3286,15 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
const exec_1 = __nccwpck_require__(71514);
|
const exec_1 = __nccwpck_require__(71514);
|
||||||
const image_tag_1 = __importDefault(__nccwpck_require__(57648));
|
const image_tag_1 = __importDefault(__nccwpck_require__(57648));
|
||||||
const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145));
|
const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145));
|
||||||
|
const fs_1 = __nccwpck_require__(57147);
|
||||||
|
const path_1 = __importDefault(__nccwpck_require__(71017));
|
||||||
class Docker {
|
class Docker {
|
||||||
static build(buildParameters, silent = false) {
|
static build(buildParameters, silent = false) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const { path, dockerfile, baseImage } = buildParameters;
|
const { path: buildPath, dockerfile, baseImage } = buildParameters;
|
||||||
const { version, platform } = baseImage;
|
const { version, platform } = baseImage;
|
||||||
const tag = new image_tag_1.default({ repository: '', name: 'unity-builder', version, platform });
|
const tag = new image_tag_1.default({ repository: '', name: 'unity-builder', version, platform });
|
||||||
const command = `docker build ${path} \
|
const command = `docker build ${buildPath} \
|
||||||
--file ${dockerfile} \
|
--file ${dockerfile} \
|
||||||
--build-arg IMAGE=${baseImage} \
|
--build-arg IMAGE=${baseImage} \
|
||||||
--tag ${tag}`;
|
--tag ${tag}`;
|
||||||
|
@ -3315,16 +3317,23 @@ class Docker {
|
||||||
}
|
}
|
||||||
static getBaseOsSpecificArguments(baseOs, workspace, unitySerial, runnerTemporaryPath, sshAgent) {
|
static getBaseOsSpecificArguments(baseOs, workspace, unitySerial, runnerTemporaryPath, sshAgent) {
|
||||||
switch (baseOs) {
|
switch (baseOs) {
|
||||||
case 'linux':
|
case 'linux': {
|
||||||
|
const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home');
|
||||||
|
if (!fs_1.existsSync(githubHome))
|
||||||
|
fs_1.mkdirSync(githubHome);
|
||||||
|
const githubWorkflow = path_1.default.join(runnerTemporaryPath, '_github_workflow');
|
||||||
|
if (!fs_1.existsSync(githubWorkflow))
|
||||||
|
fs_1.mkdirSync(githubWorkflow);
|
||||||
return `--env UNITY_SERIAL \
|
return `--env UNITY_SERIAL \
|
||||||
--env GITHUB_WORKSPACE=/github/workspace \
|
--env GITHUB_WORKSPACE=/github/workspace \
|
||||||
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
||||||
--volume "/var/run/docker.sock":"/var/run/docker.sock" \
|
--volume "/var/run/docker.sock":"/var/run/docker.sock" \
|
||||||
--volume "${runnerTemporaryPath}/_github_home":"/root" \
|
--volume "${githubHome}":"/root:z" \
|
||||||
--volume "${runnerTemporaryPath}/_github_workflow":"/github/workflow" \
|
--volume "${githubWorkflow}":"/github/workflow:z" \
|
||||||
--volume "${workspace}":"/github/workspace" \
|
--volume "${workspace}":"/github/workspace:z" \
|
||||||
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \
|
||||||
${sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : ''}`;
|
${sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : ''}`;
|
||||||
|
}
|
||||||
case 'win32':
|
case 'win32':
|
||||||
return `--env UNITY_SERIAL="${unitySerial}" \
|
return `--env UNITY_SERIAL="${unitySerial}" \
|
||||||
--env GITHUB_WORKSPACE=c:/github/workspace \
|
--env GITHUB_WORKSPACE=c:/github/workspace \
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -52,7 +52,7 @@ class Docker {
|
||||||
return `--env UNITY_SERIAL \
|
return `--env UNITY_SERIAL \
|
||||||
--env GITHUB_WORKSPACE=/github/workspace \
|
--env GITHUB_WORKSPACE=/github/workspace \
|
||||||
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \
|
||||||
--volume "/var/run/docker.sock":"/var/run/docker.sock:z" \
|
--volume "/var/run/docker.sock":"/var/run/docker.sock" \
|
||||||
--volume "${githubHome}":"/root:z" \
|
--volume "${githubHome}":"/root:z" \
|
||||||
--volume "${githubWorkflow}":"/github/workflow:z" \
|
--volume "${githubWorkflow}":"/github/workflow:z" \
|
||||||
--volume "${workspace}":"/github/workspace:z" \
|
--volume "${workspace}":"/github/workspace:z" \
|
||||||
|
|
Loading…
Reference in New Issue