This tool can be used to update a stack via the portainer project.
- Update existing stacks
- Read a docker-compose file from file system
- Make tool available through npx
- Deploy new stacks
- Command line tool
==Attention: Portainer only supports compose file version 2 at the moment==
const { Auth, Deploy, Update, GetStackByName } = require('portainer-update');
const url = "http://localhost:9000/api";
Auth("username", "password", url)
.then(async (response) => {
const stacks = [];
const stackid = await GetStackByName(response.jwt, url, "stackname");
// JsonWebToken, Portainer api url, id of stack which should be updated,
// endpoint id, docker compose as string
stacks.push(await Update(response.jwt, url, stackid, 1, "compose string"));
// JsonWebToken, Portainer api url, name of the new stack which will be deployed,
// endpoint id, docker compose as string
stacks.push(await Deploy(response.jwt, url, "stackname", 1, "compose string"));
console.info(JSON.stringify(stacks));
});
npx portainer-update -p <Stackname> -u <Portainer Username> --password <Portainer Password> -f <Path to docker compose> -s <Portainer URL>
Parameter | Name | Description | Required |
---|---|---|---|
-h | --help | Help | Show this parameter table | |
-e | --env | Envrionment | At the moment this parameter has no effect | |
-p | --project | Stackname | The name of the stack you want to update | X |
-u | --user | Portainer Username | The username of the user which will update the stack ==The user need the permission to edit the stack== | X |
--password | Portainer Password | This tool is for use in CiCD pipelines so please provide the password as a secret variable | X |
-f | --compose | Path to compose | Fill in the path to the compose file, which you want to deploy | X |
-s | --portainersystem | Portainer API URL | The address where to find portainer API (The url you are browsing to in your browser) | Default value: http://localhost:9000 |
--endpoint | Endpoint ID | The id of the endpoint where the stack should be deployed | Default value: 1 |