mirror of
https://github.com/portainer/portainer.git
synced 2025-07-25 08:19:40 +02:00
feat(compose): add docker-compose wrapper (#4713)
* feat(compose): add docker-compose wrapper ce-187 * fix(compose): pick compose implementation upon startup * Add static compose build for linux * Fix wget * Fix platofrm specific docker-compose download * Keep amd64 architecture as download parameter * Add tmp folder for docker-compose * fix: line endings * add proxy server * logs * Proxy * Add lite transport for compose * Fix local deployment * refactor: pass proxyManager by ref * fix: string conversion * refactor: compose wrapper remove unused code * fix: tests * Add edge * Fix merge issue * refactor: remove unused code * Move server to proxy implementation * Cleanup wrapper and manager * feat: pass max supported compose syntax version with each endpoint * fix: pick compose syntax version * fix: store wrapper version in portainer * Get and show composeSyntaxMaxVersion at stack creation screen * Get and show composeSyntaxMaxVersion at stack editor screen * refactor: proxy server * Fix used tmp * Bump docker-compose to 1.28.0 * remove message for docker compose limitation * fix: markup typo * Rollback docker compose to 1.27.4 * * attempt to fix the windows build issue * * attempt to debug grunt issue * * use console log in grunt file * fix: try to fix windows build by removing indirect deps from go.mod * Remove tmp folder * Remove builder stage * feat(build/windows): add git for Docker Compose * feat(build/windows): add git for Docker Compose * feat(build/windows): add git for Docker Compose * feat(build/windows): add git for Docker Compose * feat(build/windows): add git for Docker Compose * feat(build/windows): add git for Docker Compose - fixed verbose output * refactor: renames * fix(stack): get endpoint by EndpointProvider * fix(stack): use margin to add space between line instead of using br tag Co-authored-by: Stéphane Busso <stephane.busso@gmail.com> Co-authored-by: Simon Meng <simon.meng@portainer.io> Co-authored-by: yi-portainer <yi.chen@portainer.io> Co-authored-by: Steven Kang <skan070@gmail.com>
This commit is contained in:
parent
83f4c5ec0b
commit
a71e71f481
31 changed files with 750 additions and 92 deletions
40
gruntfile.js
40
gruntfile.js
|
@ -19,6 +19,8 @@ module.exports = function (grunt) {
|
|||
binaries: {
|
||||
dockerLinuxVersion: '19.03.13',
|
||||
dockerWindowsVersion: '19-03-12',
|
||||
dockerLinuxComposeVersion: '1.27.4',
|
||||
dockerWindowsComposeVersion: '1.28.0',
|
||||
komposeVersion: 'v1.22.0',
|
||||
kubectlVersion: 'v1.18.0',
|
||||
},
|
||||
|
@ -37,6 +39,7 @@ module.exports = function (grunt) {
|
|||
grunt.registerTask('build:server', [
|
||||
'shell:build_binary:linux:' + arch,
|
||||
'shell:download_docker_binary:linux:' + arch,
|
||||
'shell:download_docker_compose_binary:linux:' + arch,
|
||||
'shell:download_kompose_binary:linux:' + arch,
|
||||
'shell:download_kubectl_binary:linux:' + arch,
|
||||
]);
|
||||
|
@ -63,6 +66,7 @@ module.exports = function (grunt) {
|
|||
'copy:assets',
|
||||
'shell:build_binary:' + p + ':' + a,
|
||||
'shell:download_docker_binary:' + p + ':' + a,
|
||||
'shell:download_docker_compose_binary:' + p + ':' + a,
|
||||
'shell:download_kompose_binary:' + p + ':' + a,
|
||||
'shell:download_kubectl_binary:' + p + ':' + a,
|
||||
'webpack:prod',
|
||||
|
@ -77,6 +81,7 @@ module.exports = function (grunt) {
|
|||
'copy:assets',
|
||||
'shell:build_binary_azuredevops:' + p + ':' + a,
|
||||
'shell:download_docker_binary:' + p + ':' + a,
|
||||
'shell:download_docker_compose_binary:' + p + ':' + a,
|
||||
'shell:download_kompose_binary:' + p + ':' + a,
|
||||
'shell:download_kubectl_binary:' + p + ':' + a,
|
||||
'webpack:prod',
|
||||
|
@ -138,6 +143,7 @@ gruntfile_cfg.shell = {
|
|||
download_docker_binary: { command: shell_download_docker_binary },
|
||||
download_kompose_binary: { command: shell_download_kompose_binary },
|
||||
download_kubectl_binary: { command: shell_download_kubectl_binary },
|
||||
download_docker_compose_binary: { command: shell_download_docker_compose_binary },
|
||||
run_container: { command: shell_run_container },
|
||||
run_localserver: { command: shell_run_localserver, options: { async: true } },
|
||||
install_yarndeps: { command: shell_install_yarndeps },
|
||||
|
@ -171,7 +177,7 @@ function shell_run_container() {
|
|||
'docker rm -f portainer',
|
||||
'docker run -d -p 8000:8000 -p 9000:9000 -v $(pwd)/dist:/app -v ' +
|
||||
portainer_data +
|
||||
':/data -v /var/run/docker.sock:/var/run/docker.sock:z --name portainer portainer/base /app/portainer',
|
||||
':/data -v /var/run/docker.sock:/var/run/docker.sock:z -v /tmp:/tmp --name portainer portainer/base /app/portainer',
|
||||
].join(';');
|
||||
}
|
||||
|
||||
|
@ -204,6 +210,38 @@ function shell_download_docker_binary(p, a) {
|
|||
}
|
||||
}
|
||||
|
||||
function shell_download_docker_compose_binary(p, a) {
|
||||
console.log('request docker compose for ' + p + ':' + a);
|
||||
var ps = { windows: 'win', darwin: 'mac' };
|
||||
var as = { arm: 'armhf', arm64: 'aarch64' };
|
||||
var ip = ps[p] || p;
|
||||
var ia = as[a] || a;
|
||||
console.log('download docker compose for ' + ip + ':' + ia);
|
||||
var linuxBinaryVersion = '<%= binaries.dockerLinuxComposeVersion %>';
|
||||
var windowsBinaryVersion = '<%= binaries.dockerWindowsComposeVersion %>';
|
||||
console.log('download docker compose versions; Linux: ' + linuxBinaryVersion + ' Windows: ' + windowsBinaryVersion);
|
||||
|
||||
if (ip === 'linux' || ip === 'mac') {
|
||||
return [
|
||||
'if [ -f dist/docker-compose ]; then',
|
||||
'echo "Docker Compose binary exists";',
|
||||
'else',
|
||||
'build/download_docker_compose_binary.sh ' + ip + ' ' + ia + ' ' + linuxBinaryVersion + ';',
|
||||
'fi',
|
||||
].join(' ');
|
||||
} else if (ip === 'win') {
|
||||
return [
|
||||
'powershell -Command "& {if (Test-Path -Path "dist/docker-compose.exe") {',
|
||||
'Write-Host "Skipping download, Docker Compose binary exists"',
|
||||
'return',
|
||||
'} else {',
|
||||
'& ".\\build\\download_docker_compose_binary.ps1" -docker_compose_version ' + windowsBinaryVersion + '',
|
||||
'}}"',
|
||||
].join(' ');
|
||||
}
|
||||
console.log('docker compose is downloaded');
|
||||
}
|
||||
|
||||
function shell_download_kompose_binary(p, a) {
|
||||
var binaryVersion = '<%= binaries.komposeVersion %>';
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue