[PYTHON] Exécutez IDCF Cloud CLI sur Docker

J'ai déjà regardé Design Patterns for Running CLI on Docker Container, mais cette fois [IDCF Cloud CLI](http: //www.idcf Faisons une image de .jp / cloud / spec / api.html). Vous pouvez préparer un environnement virtuel avec virtuanemv, mais si vous distribuez des commandes avec une image Docker, vous pouvez l'essayer sans polluer l'environnement de la machine hôte. Tu peux le faire. L'image Docker peut également être utilisée de manière pratique comme format de distribution CLI.

projet

Le référentiel créé cette fois-ci est ici.

Dockerfile

L'image de base utilise 2.7 ON BUILD du [Python] officiel (https://hub.docker.com/_/python/). Le Dockerfile est très simple car ONBUILD effectue le traitement nécessaire pour la construction.

Dockerfile


FROM python:2-onbuild

requirements.txt

Le référentiel IDCF (https://github.com/idcf/cloudstack-api) n'inclut pas requirements.txt. Définissez également l'ajout de packages dépendants et de cloudstack-api à installer via GitHub.

requirements.txt


httplib2
simplejson
argparse
prettytable==0.5
parsedatetime==0.8.7
lxml
-e git+https://github.com/idcf/cloudstack-api#egg=cloudstack-api

L'image de base ONBUILD copiera et `pip install 'le fichier requirements.txt.

Dockerfile


FROM python:2.7

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

ONBUILD COPY requirements.txt /usr/src/app/
ONBUILD RUN pip install --no-cache-dir -r requirements.txt

ONBUILD COPY . /usr/src/app

docker-compose.yml

Définissez les variables d'environnement à partir de la clé d'API IDCF Cloud Console (https://console.idcfcloud.com/user/apikey).

docker-compose.yml


idcfcli:
  build: .
  volumes:
    - /etc/localtime:/etc/localtime:ro
  environment:
    - IDCF_COMPUTE_HOST=
    - IDCF_COMPUTE_API_KEY=
    - IDCF_COMPUTE_SECRET_KEY=
  command: ["/usr/local/bin/cloudstack-api","listVirtualMachines","-t=id,name,state"]

Comment utiliser

git clone du référentiel. Renommez docker-compose.yml.default en docker-compose.yml et définissez les variables d'environnement.

$ git clone https://github.com/masato/docker-idcfcli.git idcfcli
$ cd idcfcli
$ mv docker-compose.yml.default docker-compose.yml
$ vi docker-compose.yml

Démarrez le conteneur à partir de Docker Compose. La commande par défaut exécute listVirtualMachines.

$ docker-compose build
$ docker-compose run --rm idcfcli
+--------------------------------------+------+---------+
|                  id                  | name |  state  |
+--------------------------------------+------+---------+
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | seed | Running |
+--------------------------------------+------+---------+

Exécutez n'importe quelle commande comme suit.

$ docker-compose run --rm idcfcli cloudstack-api listVirtualMachines -t=id,name,state
+--------------------------------------+------+---------+
|                  id                  | name |  state  |
+--------------------------------------+------+---------+
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | seed | Running |
+--------------------------------------+------+---------+

Créer un alias

Définissez un alias dans ~ / .bashrc etc.

~/.bashrc


alias idcf-cli='docker-compose run --rm idcfcli cloudstack-api'

L'utilisation d'alias le rend plus proche de la CLI.

$ idcf-cli listVirtualMachines -t=id,name,state
+--------------------------------------+------+---------+
|                  id                  | name |  state  |
+--------------------------------------+------+---------+
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | seed | Running |
+--------------------------------------+------+---------+

Recommended Posts

Exécutez IDCF Cloud CLI sur Docker
jour de course des dockers (note)
Exécutez l'application avec Flask + Heroku
Exécutez XGBoost avec Cloud Dataflow (Python)
Accéder à l'API Docker Remote avec des requêtes
Derrière le flyer: utiliser Docker avec Python
Exécutez le YOLO original avec Jetson Nano
Utiliser Tabpy avec Cloud Run (sur GKE)
Attention Seq2 Exécutez le modèle de dialogue avec Seq
Exécutez une application Web Python avec Docker
Gratter l'holojour et l'afficher dans la CLI
Remarque: préparez l'environnement de CmdStanPy avec docker
Obtenez les dernières informations AMI avec l'AWS CLI
Préparer l'environnement d'exécution de Python3 avec Docker
Réalisez facilement des micro-services avec Cloud Run x Flask
Exécutez l'application flask sur Cloud 9 et Apache Httpd
Modifier le fuseau horaire dans Oracle Database Docker
Exécutez un pipeline de machine learning avec Cloud Dataflow (Python)
Exécutez avec CentOS7 + Apache2.4 + Python3.6 pour le moment
Préparation de l'environnement d'exécution de PyTorch avec Docker Novembre 2019
Serveur TFTP avec Docker
Exécutez Python avec VBA
Exécutez prepDE.py avec python3
Exécutez Blender avec python
Utiliser python avec docker
Serveur proxy avec Docker
Bonjour le monde avec Docker
Nuage de points avec du poivre
Tutoriel Cloud Run (python)
Exécutez iperf avec python
Spécifiez le nom du projet de docker-compose avec l'intégration Docker de Pycharm
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Établissez une connexion VPN SSL SonicWall avec l'interface de ligne de commande Linux
Téléchargez le lien brut du référentiel privé GitLab avec CLI
J'ai remarqué en essayant d'exécuter ninix-aya avec Docker (partie 3)
Touchez NoSQL avec Python à l'aide d'Oracle NoSQL Database Cloud Simulator
La vraie valeur de l'automatisation Terraform à partir d'Oracle Cloud
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux