feat(CORE): docker permissions and rework (#13454)

- fix docker permissions with mounted volumes on new docker versions (https://github.com/docker/desktop-linux/issues/31)
- fix ac-tools image
- cleanup unused env
- add  `cap_add: SYS_NICE` to allow setting process high priority
- fix ccache in docker
- allow to switch between root user (default) to acore user in any container
- fix cache of the downloaded client data
- split docker github actions in 2 parts
- versioning mysql images
- performance improvements
This commit is contained in:
Yehonal
2022-11-07 13:20:48 +01:00
committed by GitHub
parent 6177ce4688
commit e4016823d7
36 changed files with 513 additions and 250 deletions

View File

@@ -67,7 +67,11 @@ function _switch() {
DOCKER=1 denoRunFile "$AC_PATH_APPS/docker/docker-cmd.ts" "${@:2}"
exit
;;
""|"quit"|"14")
""|"v"|"version"|"14")
denoRunFile "$AC_PATH_APPS/installer/main.ts" "version"
exit
;;
""|"quit"|"15")
echo "Goodbye!"
exit
;;

43
apps/installer/main.ts Normal file
View File

@@ -0,0 +1,43 @@
import { Command } from "https://cdn.deno.land/cmd/versions/v1.2.0/raw/mod.ts";
import { getAcoreReleaseVersion } from "./utils.ts";
import { Input } from "https://deno.land/x/cliffy@v0.25.2/prompt/mod.ts";
const program = new Command();
program
.name("acore.sh")
.description("Shell scripts for docker")
.version("1.0.0");
// program
// .command("quit")
// .description("Close docker command")
// .action(() => {
// process.exit(0);
// });
program
.command("version")
.description("Get the version of the current AzerothCore revision")
.action(async () => {
console.log(await getAcoreReleaseVersion());
});
async function main() {
let exit = false;
do {
if (Deno.args.length === 0) {
program.outputHelp();
const command = await Input.prompt({
message: "Enter the command:",
});
console.log(command);
await program.parseAsync(command.split(" "));
} else {
exit = true;
await program.parseAsync(Deno.args);
process.exit(0);
}
} while (!exit);
}
main();

17
apps/installer/utils.ts Normal file
View File

@@ -0,0 +1,17 @@
import * as path from "https://deno.land/std/path/mod.ts";
import makeloc from "https://deno.land/x/dirname@1.1.2/mod.ts";
const { __dirname } = makeloc(import.meta);
// specify the needed paths here
const ACORE_JSON = path.resolve(__dirname + "/../../acore.json");
export async function getAcoreReleaseVersion() {
// read the acore.json file to work with the versioning
const decoder = new TextDecoder("utf-8");
//console.debug(`Open ${ACORE_JSON}`)
const data = await Deno.readFile(ACORE_JSON);
const acoreInfo = JSON.parse(decoder.decode(data));
return `AzerothCore Rev. ${acoreInfo.version}`;
}