Portainer CLI is a Python software to use in command line. Use this command line interface to easy communicate with your Portainer application, like in a continuous integration and continuous deployment environments.
pip install [--user] portainer-cli
Flag | Description |
---|---|
-l or --local |
Save and load configuration file (.portainer-cli.json ) in current directory. |
-d or --debug |
Enable DEBUG messages in stdout |
Configure Portainer HTTP service base url.
portainer-cli configure base_url
E.g:
portainer-cli configure http://10.0.0.1:9000/
You can also pass additional headers, e.g.:
portainer-cli configure https://portainer.mydomain.com/ -extra-headers=CF-Access-Client-Id=**.access,CF-Access-Client-Secret=***
Identify yourself and take action.
portainer-cli login username password
E.g:
portainer-cli login douglas d1234
Create a stack.
portainer-cli create_stack -n stack_name -e endpoint_id -sf stack_file
E.g:
portainer-cli create_stack -n stack_name -e 1 stack-test -sf docker-compose.yml
Flag | Description |
---|---|
-n or -stack-name |
Stack name |
-e or -endpoint-id |
Endpoint id (required) |
-sf or -stack-file |
Stack file |
-ef or -env-file |
Pass env file path, usually .env |
Update a stack.
portainer-cli update_stack -s stack_id -e endpoint_id -sf stack_file
E.g:
portainer-cli update_stack -s 18 -e 1 -sf docker-compose.yml
portainer-cli update_stack id -s stack_id -e endpoint_id -sf stack_file --env.var=value
Where var
is the environment variable name and value
is the environment variable value.
Flag | Description |
---|---|
-s or -stack-id |
Stack id |
-e or -endpoint-id |
Endpoint id (required) |
-sf or -stack-file |
Stack file |
-ef or -env-file |
Pass env file path, usually .env |
-p or --prune |
Prune services |
-c or --clear-env |
Clear all environment variables |
Create or update a stack based on it's name.
portainer-cli create_or_update_stack -n stack_name -e endpoint_id -sf stack_file
E.g:
portainer-cli update_stack -s 18 -e 1 -sf docker-compose.yml
portainer-cli create_or_update_stack -n stack_name -e endpoint_id -sf stack_file --env.var=value
Where var
is the environment variable name and value
is the environment variable value.
Flag | Description |
---|---|
-n or -stack-name |
Stack name |
-e or -endpoint-id |
Endpoint id (required) |
-sf or -stack-file |
Stack file |
-ef or -env-file |
Pass env file path, usually .env |
-p or --prune |
Prune services |
-c or --clear-env |
Clear all environment variables |
Update acl associated to a stack
portainer-cli update_stack_acl -s stack_id -e endpoint_id -o ownership_type
Remark : you can either update by stack_id or stack_name (-s
or -n
)
E.g:
portainer-cli update_stack_acl -n stack-test -e 1 -o restricted -u user1,user2 -t team1,team2
Flag | Description |
---|---|
-s or -stack-id |
Stack id |
-n or -stack-name |
Stack name |
-e or -endpoint-id |
Endpoint id (required) |
-o or -ownership-type |
Ownership type (admin |
-u or -users |
Comma separated list of user names (when restricted ) |
-t or -teams |
Comma separated list of team names (when restricted ) |
-c or -clear |
Clear users and teams before updateing them (when restricted ) |
Get stack id by it's name. return -1 if the stack does not exist
portainer-cli get_stack_id -n stack_name -e endpoint_id
E.g:
portainer-cli get_stack_id -n stack-test -e 1
Flag | Description |
---|---|
-n or -stack-name |
Stack name |
-e or -endpoint-id |
Endpoint id (required) |
Update registry.
portainer-cli update_registry id [-name] [-url]
E.g:
portainer-cli update_registry 1 -name="Some registry" -url="some.url.com/r"
You can use authentication passing -a
or --authentication
flag, but you must pass the -username
and -password
options.
portainer-cli update_registry 1 -a -username=douglas -password=d1234
Make a request.
portainer-cli request path [method=GET] [data]
E.g:
portainer-cli request status
Flag | Description |
---|---|
-p or --printc |
Print response content in stdout. |
This project uses Poetry to manage dependencies and packaging.
Simply run poetry install
to get a development environment.