2017-08-02 2 views
0

Je ne peux pas obtenir la bonne syntaxe dans mon dockerfile pour le construire avec docker-composer.Passer le fichier Systemd de Gunicorn dans Dockerfile

Cette mon 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 

Lorsque je tente de le construire, je reçois le texte suivant:

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

Quelle est la bonne syntaxe

+0

pourquoi voulez-vous faire cela? Vous ne lancez pas systemd dans les conteneurs docker vous exécutez directement le processus –

+0

J'ai le même projet django dans le même répertoire sous de nombreux serveurs, je veux définir le fichier systemd pour gunicorn pour tous mes serveurs en exécutant le conteneur docker sans le besoin de copier et coller le systemd pour chaque serveur. –

Répondre

0

Il n'y a pas d'initialisation dans un conteneur docker (par défaut)

Vous devez définir un fichier Docker qui:

  1. Installer gunicorn
  2. Poussez le fichier de configuration
  3. dit conteneur pour lancer une commande comme gunicorn [...]

Détails pour pousser le fichier de configuration, dans votre dockerfile:

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

Remarque : N'utilisez pas les sockets unix avec des conteneurs, exposez plutôt les ports afin de rendre votre service disponible aux autres conteneurs partageant le même réseau.

+0

mon problème est comment pousser le fichier de configuration, comment puis-je faire écho ce texte dans dockerfile dans le fichier systemd gunicorn –