2017-04-15 10 views
0

Ich versuche, eine lokale LEMP-Entwicklungsumgebung mit Docker einzurichten. Im Anschluss ist meine Docker-composer.yml:Wie wird ein virtueller Host einem Container im Andockfenster zugeordnet?

version: '2' 
services: 
    apache: 
    build: 
     context: ./docker/apache-php7 
     dockerfile: Dockerfile 
    image: foo/apache-php7 
    volumes: 
     - .:/var/www/html 
    ports: 
     - "80:80" 
     - "443:443" 
    networks: 
    - localnet 
    node: 
    build: 
     context: ./docker/node 
     dockerfile: Dockerfile 
    image: foo/node 
    volumes: 
    - .:/var/www/html 
    networks: 
    - localnet 
    mysql: 
    image: mysql:5.7 
    ports: 
    - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: "root" 
     MYSQL_DATABASE: "root" 
     MYSQL_USER: "root" 
     MYSQL_PASSWORD: "root" 
    volumes: 
    - mysqldata:/var/lib/mysql 
    networks: 
    - localnet 
    redis: 
    image: redis:alpine 
    volumes: 
    - redisdata:/data 
    networks: 
    - localnet 
networks: 
    localnet: 
    driver: "bridge" 
volumes: 
    mysqldata: 
    driver: "local" 
    redisdata: 
    driver: "local" 

ich die Seite, indem Sie auf http://localhost zugreifen kann. Anstatt auf das Projekt mit http://localhost zuzugreifen, versuche ich, es auf http://foo.dev abzubilden, aber für das Leben von mir kann ich einfach nicht herausfinden, wie ich das erreichen kann? Ein Beispiel, das ich gesehen habe, ist this, aber es verwendet ein anderes Bild und es verwendet auch nginx.

+0

Was hast du bisher versucht? – johnharris85

+0

@ johnharris85 Es klingt vielleicht faul, aber ich weiß nicht, wo ich anfangen soll. Ich habe versucht Google Docs, Google, aber ich denke, ich stelle nicht die richtigen Fragen, also weiß nicht, wo ich suchen soll. –

Antwort

1

Ich gehe davon aus, dass das foo/apache-php7-Image von nimmis/apache-php7, das auf Ubuntu 16.04 basiert, gespalten wird, also wird Apache standardmäßig auf HTTP-Anfragen antworten, unabhängig vom Hostnamen. Also, das einzige, was Sie tun müssen, ist A/AAAA Datensätze in der foo.dev DNS-Zone auf Ihren Server zu richten.

Es ist wie die Zone sieht braucht eine gewisse Aufmerksamkeit auf jedem Fall:

% host foo.dev 
foo.dev has address 127.0.53.53 
foo.dev mail is handled by 10 your-dns-needs-immediate-attention.dev. 

Der Adressdatensatz verweist auf eine lokale Host-Adresse, die bis Sie tatsächlich auf dem gleichen Host sind nicht funktionieren. Sie benötigen dort eine global geroutete IP-Adresse.

+0

Ja, es ist von Nimmis/Apache-php7 Bild gespalten. Ich bin ein wenig verwirrt darüber, warum ich A/AAAA-Datensätze einrichten muss, um eine Entwicklungsumgebung nur für meinen Computer einzurichten. Ein Beispiel dafür, was ich im Moment tun ist: 1. Führen Sie ein Vagabund Feld 2. eine IP-Adresse ein (zB 192.168.2.19) 3. Auf meiner/etc/hosts fügen Sie folgendes: 192.168.2.19 foo. dev Wenn ich nun zu foo.dev navigiere, läuft es von der lokalen virtuellen Box-Instanz ab. Aber mit Docker kann ich es einfach nicht herausfinden. Und wenn ich es mit Docker nicht ganz vermisst habe, helfen mir deine Antworten nicht? –

+0

Was bekommen Sie, wenn Sie versuchen, auf http://foo.dev/ zuzugreifen? –

0

Alles, was ich tun musste, war einfach die ServerName-Direktive in der Apache-Conf-Datei für die betreffende Website hinzufügen. In meinem Fall war es die 000-default.conf. Ich brauchte nicht einmal die Hosts-Datei zu aktualisieren, wie ich Gerd Antwort als die Antwort wie ich Kennzeichnung ist es, was mich an diese gerichtet:

ServerName foo.dev 

ich dann mit der folgenden Datei meine Gastgeber aktualisiert:

127.0.0.1 foo.dev www.foo.dev 
Verwandte Themen