Dieses Mal, um das von mir erstellte Programm bereitzustellen und zu verwenden
Das Programm wurde in Form von vorbereitet. Schreiben Sie diese Notiz. Dies folgt dem aktuellen Trend und scheint die allgemeine Verwendung zu sein, die in der auf diese Weise bereitgestellten Open Source verwendet wird.
Mit meinem eigenen Programm
$ prog <arg1> <args2>
Ich habe es so vorbereitet, wie es in einem Docker-Bild ist
$ docker run -t prog_image <arg1> <arg2>
Wird verfügbar sein als.
Ich konnte mich auf Folgendes beziehen.
Ich denke, die obigen Informationen sind genug, aber wenn ich es wage, einen süchtig machenden Punkt zu nennen, ...
--In ENTRYPOINT anstelle von CMD: Ich habe den Ausführungsinhalt in CMD in Dockerfile angegeben, aber es scheint, dass es keine Argumente mehr akzeptiert. Es hat funktioniert, als ich es auf ETNRYPOINT gesetzt habe.
Die Implementierungsmethode ist Docker Build
ist. (Ich denke, es ist in Ordnung, das Ausführungsprogramm direkt anzugeben, aber gibt es etwas Besseres, um die Shell zu durchlaufen? Das weiß ich nicht.)
Ich habe es zum Testen gemacht.
hello.c
#include <stdio.h>
#include <stdlib.h>
int main(const int argc, const char**argv)
{
for(int i=0; i< argc; i++){
printf("argv[%d]=%s\n", i, argv[i]);
}
return EXIT_SUCCESS;
}
--wrapper script: Übergebe einfach das Argument
docker_entrypoint.sh
#!/bin/bash
echo "I am a wrapper script."
hello $@
--Dockerfile: Erstellen und installieren, Wrapper-Skript als Einstiegspunkt angeben
FROM ubuntu:18.04
RUN apt-get update -y && \
apt-get install -y -qq --no-install-recommends \
build-essential \
gcc
COPY hello.c /tmp/
RUN cd /tmp && gcc /tmp/hello.c -o hello && mv hello /usr/local/bin/
COPY docker_entrypoint.sh /usr/local/bin
ENTRYPOINT ["docker_entrypoint.sh"]
--Lass es uns bewegen
> docker build -t test .
...
Successfully tagged test:latest
> docker run --rm -t test Dear my friends.
I am wrapper script.
argv[0]=hello
argv[1]=Dear
argv[2]=my
argv[3]=friends.
In diesem Fall hat es funktioniert, auch wenn ich das Ausführungsprogramm direkt in ENTRYPOINT der Docker-Datei angegeben habe.
ENTRYPOINT [ "hello" ]
――Zur Zeit habe ich herausgefunden, wie man eine Umgebung, die unter Linux läuft, in ein Programm verwandelt, das auf Docker läuft, so wie es ist.
Zukünftige Aufgaben.
Ich konnte heute überleben (um genau zu sein gestern). (2020/10/17)