Web
Apache2
Docker-Compose
webserver:
build:
context: ./bin/webserver
container_name: 'apache2'
restart: 'always'
volumes:
- /Docker/Webhost/apache2/www:/var/www/html
- /Docker/Webhost/apache2/config/php/php.ini:/usr/local/etc/php/php.ini
- /Docker/Webhost/apache2/config/vhosts:/etc/apache2/sites-enabled
- /Docker/Webhost/apache2/logs:/var/log/apache2
ports:
- 8888:80
networks:
web:
ipv4_address: 172.18.0.11
labels:
- "traefik.enable=true"
- "traefik.http.routers.apache-web.rule=Host(`kevinsloan.net`)"
- "traefik.http.routers.apache-web.entrypoints=web"
- "traefik.http.routers.apache-web.middlewares=redirect@file"
- "traefik.http.routers.apache-secured.rule=Host(`kevinsloan.net`)"
- "traefik.http.routers.apache-secured.entrypoints=web-secured"
- "traefik.http.routers.apache-secured.tls.certresolver=mytlschallenge"
DockerFile
FROM php:7.1.20-apache
RUN apt-get -y update --fix-missing
RUN apt-get upgrade -y
# Install useful tools
RUN apt-get -y install apt-utils nano wget dialog
# Install important libraries
RUN apt-get -y install --fix-missing apt-utils build-essential git curl libcurl3 libcurl3-dev zip
# Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Install xdebug
RUN pecl install xdebug-2.5.0
RUN docker-php-ext-enable xdebug
# Other PHP7 Extensions
RUN apt-get -y install libmcrypt-dev
RUN docker-php-ext-install mcrypt
RUN apt-get -y install libsqlite3-dev libsqlite3-0 mysql-client
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install pdo_sqlite
RUN docker-php-ext-install mysqli
RUN docker-php-ext-install curl
RUN docker-php-ext-install tokenizer
RUN docker-php-ext-install json
RUN apt-get -y install zlib1g-dev
RUN docker-php-ext-install zip
RUN apt-get -y install libicu-dev
RUN docker-php-ext-install -j$(nproc) intl
RUN docker-php-ext-install mbstring
RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install -j$(nproc) gd
# Enable apache modules
RUN a2enmod rewrite headers
PHPMyAdmin
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: 'phpmyadmin'
environment:
PMA_HOST: mysql
PMA_PORT: 3306
volumes:
- /sessions
networks:
web:
ipv4_address: 172.18.0.14
labels:
- "traefik.enable=true"
- "traefik.http.routers.phpmyadmin-web.rule=Host(`sql.kevinsloan.net`)"
- "traefik.http.routers.phpmyadmin-web.entrypoints=web"
- "traefik.http.routers.phpmyadmin-web.middlewares=redirect@file"
- "traefik.http.routers.phpmyadmin-secured.rule=Host(`sql.kevinsloan.net`)"
- "traefik.http.routers.phpmyadmin-secured.entrypoints=web-secured"
- "traefik.http.routers.phpmyadmin-secured.tls.certresolver=mytlschallenge"
restart: unless-stopped
Organizr
organizr:
image: organizrtools/organizr-v2
container_name: organizr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- /Docker/organizr:/config
networks:
web:
ipv4_address: 172.18.0.16
labels:
- "traefik.enable=true"
- "traefik.http.routers.organizr-web.rule=Host(`home.kevinsloan.net`)"
- "traefik.http.routers.organizr-web.entrypoints=web"
- "traefik.http.routers.organizr-web.middlewares=redirect@file"
- "traefik.http.routers.organizr-secured.rule=Host(`home.kevinsloan.net`)"
- "traefik.http.routers.organizr-secured.entrypoints=web-secured"
- "traefik.http.routers.organizr-secured.tls.certresolver=mytlschallenge"
restart: unless-stopped