docker-container-for-cli
path: api-and-integrations/docker-container-for-cli.mdx title: Contenedor Docker para CLI slug: docker-container-for-cli pagination_next: null pagination_prev: null sidebar_position: 4 description: >- Instrucciones para usar el contenedor Docker para Passwork CLI: obtención, compilación, ejecución, integración CI/CD, ejemplos de comandos y recomendaciones de seguridad. keywords:
- Passwork
- Docker
- CLI
- docker-compose
- CI/CD
- python connector
- container
- example
- Bitbucket
- security
Descripción general
En el directorio ./docker hay una configuración Docker para ejecutar Passwork CLI en un entorno contenerizado. Esto es útil para pipelines de CI/CD en sistemas de integración continua.
Obtención
Clone el conector Python desde GitHub, que contiene el directorio Docker:
- SSH
- HTTPS
git clone [email protected]:passwork-me/passwork-python.git
git clone https://github.com/passwork-me/passwork-python.git
Navegue al directorio Docker:
- shell
cd ./passwork-python/docker/
Compilación de la imagen Docker
- shell
docker build -t passwork-cli .
Uso del contenedor Docker
Uso básico
Ejecute el contenedor passwork-cli, pasando las credenciales de Passwork a través de variables de entorno:
- shell
docker run -it --rm \
-e PASSWORK_HOST="https://your-passwork-instance.com" \
-e PASSWORK_TOKEN="your_access_token" \
-e PASSWORK_MASTER_KEY="your_master_key" \
passwork-cli exec --password-id "password_id" env
Uso con Docker Compose
Copie y renombre el archivo a docker-compose.yml basándose en el ejemplo:
- shell
# Edit docker-compose.yml if necessary
cp docker-compose.example.yml docker-compose.yml
Copie y renombre el archivo a .env basándose en el ejemplo:
- shell
# Specify your credentials in .env
cp .env.example .env
Ejecute utilizando Docker Compose:
- shell
docker-compose run --rm passwork-cli exec --password-id "password_id" env
Ejemplo de salida
- shell
docker compose run --rm passwork-cli exec --password-id "67ff59139b0d5d96310084c5" env
WARN[0000] /opt/passwork-python-connector/docker/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
HOSTNAME=d6ec78fda6e0
HOME=/home/passwork
GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
PYTHON_SHA256=849da87af4df137710c1796e276a955f7a85c9f971081067c8f565d15c352a09
PASSWORK_REFRESH_TOKEN=YT7ldSSD4qjzqCzIKK/3dGdQyNwB2erODWN3AoVd14E=
PASSWORK_TOKEN=LzS8ABjoa3wlvE+bqVZXHuFsQlc7XmxKIp+9HMu+800=
TERM=xterm
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=C.UTF-8
PASSWORK_HOST=https://passwork.example.com
PASSWORK_MASTER_KEY=1lZyMBmT8Mqyj1cDcyiZHDZLHgyejvbMaUoohb1YYxuJnliDbdvgK8H4MWkSaXHZvqZyS9drsrZoOFbDVs5wBQ==
PYTHON_VERSION=3.11.12
PWD=/app
MONGODB_PASSWORD=P@ssw0rd
Ejemplos
Obtención de una contraseña y su uso en un comando:
- shell
docker run -it --rm \
-e PASSWORK_HOST="https://your-passwork.com" \
-e PASSWORK_TOKEN="your_token" \
-e PASSWORK_MASTER_KEY="your_master_key" \
passwork-cli exec --password-id "db_password_id" mysql -h db_host -u admin -p "$DB_PASSWORD" db_name
Si no se utiliza cifrado del lado del cliente, elimine la línea — -e PASSWORK_MASTER_KEY="your_master_key" \
Llamada directa a la API:
- shell
docker run -it --rm \
-e PASSWORK_HOST="https://your-passwork.com" \
-e PASSWORK_TOKEN="your_token" \
-e PASSWORK_MASTER_KEY="your_master_key" \
passwork-cli api --method GET --endpoint "v1/vaults"
Si no se utiliza cifrado del lado del cliente, elimine la línea — -e PASSWORK_MASTER_KEY="your_master_key" \
Uso en Bitbucket Pipelines
Añada el siguiente bloque a bitbucket-pipelines.yml:
- shell
pipelines:
default:
- step:
name: Deploy with Passwork credentials
image: passwork-cli
script:
- passwork-cli exec --password-id "deploy_credentials" ./deploy.sh
services:
- docker
caches:
- docker
También puede utilizar la imagen Docker directamente desde el registro de contenedores:
- shell
pipelines:
default:
- step:
name: Deploy with Passwork credentials
image: your-registry.com/passwork-cli:latest
script:
- passwork-cli exec --password-id "deploy_credentials" ./deploy.sh
Consideraciones de seguridad
- La imagen Docker se ejecuta como un usuario no root, lo que mejora la seguridad;
- Se deben utilizar variables de entorno seguras en los pipelines de CI/CD para almacenar credenciales.