Docker webfejlesztéshez
Dockerfile és docker-compose.yml egy új projekt elkezdéséhez vagy egy meglévő tuningolásához:
Először is, hogy ne kelljen portokkal szórakozni, készítsünk egy új docker hálózatot és a 80-as portra rakjunk egy proxyt.
Új hálózathoz a következő parancs kell:
docker network create nginx-proxy
A proxyhoz pedig ez:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro --name my-nginx-proxy --net nginx-proxy jwilder/nginx-proxy
A jwilder/nginx-proxy sajátossága, hogy más containerek indításánál a VIRTUAL_HOST environmentben beállított címet irányítja át. Egyetlen extra dolgunk, hogy a hosts fájlban megadjuk a címet localhostra.
Például:
127.0.0.1 web.docker
A Dockerfile, ami összeállítja az apache szerverünket, a következő:
FROM php:7.0-apache RUN apt-get update && apt-get install -y \ curl acl git unzip \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ libicu-dev \ && pecl install xdebug \ && pecl install intl \ && docker-php-ext-install -j$(nproc) iconv mcrypt mysqli pdo pdo_mysql mbstring opcache \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-configure intl \ && docker-php-ext-install intl \ && docker-php-ext-install -j$(nproc) gd RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer RUN echo "short_open_tag=Off" > /usr/local/etc/php/php.ini ADD www /var/www/html
Hogy ne kelljen egyesével containereket indítani és összecsatolgatni egymáshoz, használjuk a következő docker-compose.yml-t:
version: '2' services: web: build: context: . volumes: - ./www:/var/www/html links: - db:mysql environment: - VIRTUAL_HOST=web.docker networks: - proxy-tier db: image: mysql volumes: - ./.mysqldata:/var/lib/mysql:rw ports: - "33306:3306" environment: - MYSQL_ROOT_PASSWORD=root networks: - proxy-tier networks: proxy-tier: external: name: nginx-proxy
A Dockerfile buildeléséhez a parancs:
docker-compose build
Az indításhoz:
docker-compose up
Ha daemonként akarjuk futtatni, akkor adjuk hozzá a -d kapcsolót vagy használjuk ezt:
docker-compose start