2017-08-02 2 views
0

Ich kann nicht die richtige Syntax in meine Dockerfile bekommen, um es mit Docker-Compose zu erstellen.Übergabe von Gunicorn Systemdatei in Dockerfile

Das ist mein dockerfile:

FROM centos:centos7 

RUN sudo echo 

'[Unit] 
Description=gunicorn daemon 
After=network.target 

[Service] 
User=tahaarmando 
Group=nginx 
WorkingDirectory=/home/tahaarmando/Projects/platform 
ExecStart=/home/tahaarmando/Projects/platform/flower/bin/gunicorn --workers 3 --bind unix:/home/$ 

[Install] 
    WantedBy=multi-user.target' 
>> /etc/systemd/system/gunicorn.service 

Wenn ich versuche, es zu bauen ich folgendes erhalten:

> Error response from daemon: Dockerfile parse error line 5: unknown instruction: '[UNIT] 

Was ist die richtige Syntax

+0

Warum möchten Sie das tun? Sie führen nicht Systemd in Docker-Containern Sie führen den Prozess direkt –

+0

Ich habe das gleiche Django-Projekt im selben Verzeichnis unter vielen Servern, ich möchte die Systemd-Datei für Gunicorn für alle meine Server nur durch Ausführen des Docker-Container ohne die Notwendigkeit, das Systemd für jeden Server zu kopieren und einzufügen. –

Antwort

0

Es gibt keine init in einem Docker Behälter (Standard)

Sie müssen eine Dockerfile definieren, die:

  1. Installieren gunicorn
  2. Push-Konfigurationsdatei
  3. sagt zu Container einen Befehl wie gunicorn [...]

zum Drücken der Konfigurationsdatei in Ihrem dockerfile starten:

COPY /path/to/local/config/file /path/to/file/inside/container 

Hinweis : Verwenden Sie keine Unix-Sockets mit Containern, sondern geben Sie Ports frei, um Ihren Service für andere verfügbar zu machen Container, die sich das gleiche Netzwerk teilen.

+0

mein Problem ist, wie man die Config-Datei, wie kann ich diesen Text in Dockerfile in die Gunicorn-Systemd-Datei Echo –