[PYTHON] Führen Sie IDCF Cloud CLI auf Docker aus

Ich habe mir zuvor Entwurfsmuster zum Ausführen von CLI auf Docker Container angesehen, diesmal jedoch [IDCF Cloud CLI](http: //www.idcf). Machen wir ein Bild von .jp / cloud / spec / api.html). Sie können eine virtuelle Umgebung mit virtuanemv vorbereiten. Wenn Sie jedoch Befehle mit einem Docker-Image verteilen, können Sie dies versuchen, ohne die Umgebung des Hostcomputers zu verschmutzen. Du kannst es schaffen. Das Docker-Image kann auch bequem als CLI-Verteilungsformat verwendet werden.

Projekt

Das diesmal erstellte Repository ist hier.

Dockerfile

Das Basis-Image verwendet 2.7 ON BUILD des offiziellen Python. Die Docker-Datei ist sehr einfach, da ONBUILD die erforderliche Verarbeitung für den Build ausführt.

Dockerfile


FROM python:2-onbuild

requirements.txt

Das IDCF-Repository (https://github.com/idcf/cloudstack-api) enthält keine Anforderungen.txt. Definieren Sie das Hinzufügen von abhängigen Paketen und Cloudstack-API, die ebenfalls über GitHub installiert werden sollen.

requirements.txt


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

Das ONBUILD-Basisimage kopiert und installiert die Datei "require.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

Legen Sie die Umgebungsvariablen über den IDCF Cloud Console-API-Schlüssel (https://console.idcfcloud.com/user/apikey) fest.

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"]

Wie benutzt man

git clone aus dem Repository. Benennen Sie docker-compose.yml.default in docker-compose.yml um und legen Sie die Umgebungsvariablen fest.

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

Starten Sie den Container von Docker Compose. Der Standardbefehl führt [listVirtualMachines] aus (http://docs.idcf.jp/cloud/api/virtual-machine/#listvirtualmachines).

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

Führen Sie einen Befehl wie folgt aus.

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

Alias erstellen

Definieren Sie einen Alias in ~ / .bashrc usw.

~/.bashrc


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

Durch die Verwendung von Aliasen wird die CLI ähnlicher.

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

Recommended Posts

Führen Sie IDCF Cloud CLI auf Docker aus
Der Tag des Dockerlaufs (Hinweis)
Führen Sie die App mit Flask + Heroku aus
Führen Sie XGBoost mit Cloud Dataflow (Python) aus.
Greifen Sie mit Requests auf die Docker Remote API zu
Hinter dem Flyer: Docker mit Python verwenden
Führen Sie das Original YOLO mit Jetson Nano aus
Verwenden Sie Tabpy mit Cloud Run (auf GKE)
Achtung Seq2 Führen Sie das Dialogmodell mit Seq aus
Führen Sie eine Python-Webanwendung mit Docker aus
Schaben Sie den Holojour ab und zeigen Sie ihn in der CLI an
Hinweis: Bereiten Sie die Umgebung von CmdStanPy mit Docker vor
Holen Sie sich die neuesten AMI-Informationen mit der AWS CLI
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
Mit Cloud Run x Flask können Sie ganz einfach Mikrodienste realisieren
Führen Sie die Kolben-App auf Cloud 9 und Apache Httpd aus
Ändern Sie die Zeitzone in Oracle Database Docker
Führen Sie eine Pipeline für maschinelles Lernen mit Cloud Dataflow (Python) aus.
Führen Sie es vorerst mit CentOS7 + Apache2.4 + Python3.6 aus
Vorbereiten der Ausführungsumgebung von PyTorch mit Docker November 2019
TFTP-Server mit Docker
Führen Sie Python mit VBA aus
Führen Sie prepDE.py mit python3 aus
Führen Sie Blender mit Python aus
Verwenden Sie Python mit Docker
Proxyserver mit Docker
Hallo, Welt mit Docker
Punktwolke mit Pfeffer
Cloud Run Tutorial (Python)
Führen Sie iperf mit Python aus
Geben Sie den Projektnamen von Docker-Compose mit Docker-Integration von Pycharm an
Führen Sie die Intelligenz Ihrer eigenen Python-Bibliothek mit VScode aus.
Stellen Sie eine SonicWall SSL VPN-Verbindung mit der Linux-CLI her
Laden Sie den unformatierten Link des privaten GitLab-Repositorys mit CLI herunter
Ich habe es beim Versuch bemerkt, Ninix-Aya mit Docker auszuführen (Teil 3).
Berühren Sie NoSQL mit Python mithilfe des Oracle NoSQL Database Cloud Simulators
Der wahre Wert der Terraform-Automatisierung ab Oracle Cloud
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab