Heute habe ich die Django-Entwicklungsumgebung auf meinem Centos6.5-Rechner installiert. Nach der Installation habe ich „django-admin.py startproject myapp“ verwendet, um die Anwendung zu erstellen, und der folgende Fehler wurde gemeldet
$ django-admin.py startproject myapp Traceback (most recent call last): File "/home/jhadmin/myenv/bin/django-admin.py", line 2, in <module> from django.core import management File "/home/jhadmin/myenv/lib/python2.6/site-packages/django/__init__.py", line 1, in <module> from django.utils.version import get_version File "/home/jhadmin/myenv/lib/python2.6/site-packages/django/utils/version.py", line 7, in <module> from django.utils.lru_cache import lru_cache File "/home/jhadmin/myenv/lib/python2.6/site-packages/django/utils/lru_cache.py", line 28 fasttypes = {int, str, frozenset, type(None)}, ^ SyntaxError: invalid syntax
Nach der Überprüfung habe ich festgestellt, dass die Python-Version von CentOS6.5 zu alt ist und die neueste Django-Version (1.8.4) eine Python-Version von 2.7.x erfordert Ich wollte es aktualisieren. Ich hatte Bedenken, Python auf meinem eigenen Computer zu verwenden, und befürchtete, dass es sich auf andere Anwendungen auswirken würde. Plötzlich kam mir der Gedanke, dass ich Docker verwenden könnte, um das aufgetretene Problem zu lösen. Im Folgenden sind die Schritte für die Django-Entwicklungsumgebung aufgeführt, die ich mit Docker erstellt habe.
Erstellen Sie zunächst ein Verzeichnis zum Speichern der Docker-Konfigurationsdatei. Hier nenne ich es django_env.
Erstellen Sie eine Dockerfile-Datei im Verzeichnis django_env mit dem folgenden Inhalt
FROM centos:centos7 MAINTAINER Fanbin Kong "kongxx@hotmail.com" RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm RUN yum install -y openssh-server sudo supervisor python-pip RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config RUN echo "root:Letmein" | chpasswd RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key RUN mkdir /var/run/sshd RUN pip install django RUN mkdir -p /var/log/supervisor COPY supervisord.conf /etc/supervisord.conf EXPOSE 22 CMD ["/usr/bin/supervisord"]
Da später mehrere Dienste in Docker gestartet werden, wird Supervisor weiterhin verwendet und eine supervisord.conf-Datei mit folgendem Inhalt erstellt
[supervisord] nodaemon=true [program:sshd] command=/usr/sbin/sshd -D
Führen Sie den folgenden Befehl im Verzeichnis django_env aus, um ein Container-Image zu generieren
Container basierend auf Containerbildern generieren
„-v /home/kongxx/mywork:/data“ wird hier verwendet, um Code zwischen dem Host-Computer und dem Container auszutauschen
Nachdem der Container generiert wurde, können Sie den Befehl „sudo docker inspect test |“ verwenden, um die IP-Adresse des Containers anzuzeigen. Melden Sie sich dann mit ssh beim Container an
Nachdem wir uns beim Container angemeldet haben, können wir den Django-Befehl ausführen, um die Anwendung wie folgt zu erstellen und zu starten
cd /data django-admin.py startproject myapp cd myapp python manage.py runserver 0.0.0.0:8000
Besuchen Sie jetzt http://:8000 im Browser und Sie werden sehen, dass der Dienst ausgeführt wird.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird. Ich hoffe auch, dass jeder Script House unterstützt.