Improve Dockerfile
Add restart policy. Use Traefik
This commit is contained in:
parent
bf3bb03e7e
commit
b239d6aa18
3 changed files with 51 additions and 48 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
docker-compose.yml
|
|
@ -1,53 +1,60 @@
|
|||
version: "3"
|
||||
version: "3.1"
|
||||
|
||||
services:
|
||||
|
||||
db:
|
||||
image: mariadb
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- "MYSQL_DATABASE=pterodactyl"
|
||||
- "MYSQL_PASSWORD=pterodactyl"
|
||||
- "MYSQL_RANDOM_ROOT_PASSWORD=yes"
|
||||
- "MYSQL_USER=pterodactyl"
|
||||
image: mariadb:latest
|
||||
networks:
|
||||
- traefik
|
||||
- default
|
||||
volumes:
|
||||
- db:/var/lib/mysql
|
||||
- ./db:/var/lib/mysql
|
||||
|
||||
http:
|
||||
build:
|
||||
context: services/http
|
||||
dockerfile: Dockerfile
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- "php"
|
||||
ports:
|
||||
- "80:80"
|
||||
expose:
|
||||
- 80
|
||||
networks:
|
||||
- traefik
|
||||
- default
|
||||
volumes:
|
||||
- env:/var/www/html/env
|
||||
- panel:/var/www/html/pterodactyl
|
||||
- storage:/var/www/html/pterodactyl/storage
|
||||
- ./env:/var/www/html/env
|
||||
- ./panel:/var/www/html/pterodactyl
|
||||
- ./storage:/var/www/html/pterodactyl/storage
|
||||
|
||||
php:
|
||||
build:
|
||||
context: services/php
|
||||
dockerfile: Dockerfile
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- "db"
|
||||
networks:
|
||||
- default
|
||||
volumes:
|
||||
- env:/var/www/html/env
|
||||
- panel:/var/www/html/pterodactyl
|
||||
- storage:/var/www/html/pterodactyl/storage
|
||||
- ./env:/var/www/html/env
|
||||
- ./panel:/var/www/html/pterodactyl
|
||||
- ./storage:/var/www/html/pterodactyl/storage
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- default
|
||||
|
||||
networks:
|
||||
default:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
db:
|
||||
env:
|
||||
panel:
|
||||
storage:
|
||||
traefik:
|
||||
external: true
|
|
@ -1,52 +1,49 @@
|
|||
FROM php:7.2-fpm-alpine
|
||||
|
||||
ENV PANEL_VERSION=v0.7.7
|
||||
ENV PANEL_VERSION=v0.7.9
|
||||
|
||||
# Set up all the dependencies for the PHP container.
|
||||
RUN apk add --no-cache curl git supervisor tar unzip
|
||||
RUN docker-php-ext-install bcmath
|
||||
# https://github.com/docker-library/php/issues/483
|
||||
# RUN docker-php-ext-install curl
|
||||
# https://stackoverflow.com/questions/39657058/installing-gd-in-docker#39658592
|
||||
RUN apk add --no-cache libpng-dev
|
||||
RUN docker-php-ext-install gd
|
||||
RUN docker-php-ext-install mbstring
|
||||
RUN docker-php-ext-install pdo
|
||||
RUN docker-php-ext-install pdo_mysql
|
||||
RUN docker-php-ext-install tokenizer
|
||||
# https://lists.alpinelinux.org/alpine-aports/2526.html
|
||||
RUN apk add --no-cache libxml2-dev
|
||||
RUN docker-php-ext-install xml
|
||||
RUN docker-php-ext-install zip
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
RUN apk add --no-cache curl git supervisor tar unzip; \
|
||||
docker-php-ext-install bcmath; \
|
||||
apk add --no-cache libpng-dev; \
|
||||
docker-php-ext-install gd; \
|
||||
docker-php-ext-install mbstring; \
|
||||
docker-php-ext-install pdo; \
|
||||
docker-php-ext-install pdo_mysql; \
|
||||
docker-php-ext-install tokenizer; \
|
||||
apk add --no-cache libxml2-dev; \
|
||||
docker-php-ext-install xml; \
|
||||
docker-php-ext-install zip; \
|
||||
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
|
||||
# Set up the server working directories.
|
||||
RUN adduser -g '' -D -u 9999 pterodactyl
|
||||
RUN mkdir -p /var/www/html/env
|
||||
RUN mkdir -p /var/www/html/pterodactyl
|
||||
RUN adduser -g '' -D -u 9999 pterodactyl; \
|
||||
mkdir -p /var/www/html/env; \
|
||||
mkdir -p /var/www/html/pterodactyl
|
||||
|
||||
WORKDIR /var/www/html/pterodactyl
|
||||
RUN chown -R pterodactyl:pterodactyl /var/www/html/pterodactyl /var/www/html/env
|
||||
|
||||
# Deploy panel files.
|
||||
USER pterodactyl:pterodactyl
|
||||
RUN curl -Lo panel.tar.gz https://github.com/Pterodactyl/Panel/releases/download/${PANEL_VERSION}/panel.tar.gz
|
||||
RUN tar --strip-components=1 -xzvf panel.tar.gz
|
||||
# Since Docker's configuration mounting feature sucks, we're going to use a cheap
|
||||
# workaround involving symbolic links.
|
||||
RUN cp .env.example /var/www/html/env/.env
|
||||
RUN ln -s /var/www/html/env/.env /var/www/html/pterodactyl/.env
|
||||
RUN composer install --no-dev
|
||||
RUN chmod -R 755 storage/* bootstrap/cache
|
||||
RUN curl -Lo panel.tar.gz https://github.com/Pterodactyl/Panel/releases/download/${PANEL_VERSION}/panel.tar.gz; \
|
||||
tar --strip-components=1 -xzvf panel.tar.gz; \
|
||||
cp .env.example /var/www/html/env/.env; \
|
||||
ln -s /var/www/html/env/.env /var/www/html/pterodactyl/.env; \
|
||||
composer install --no-dev; \
|
||||
chmod -R 755 storage/* bootstrap/cache
|
||||
|
||||
# Copy the remaining configuration files.
|
||||
USER root:root
|
||||
RUN mkdir -p /var/log/pterodactyl
|
||||
|
||||
COPY install.sh /usr/local/bin/install
|
||||
RUN chmod +x /usr/local/bin/install
|
||||
COPY upgrade.sh /usr/local/bin/upgrade
|
||||
RUN chmod +x /usr/local/bin/upgrade
|
||||
COPY schedule /var/spoon/cron/crontabs/schedule
|
||||
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
||||
COPY www.conf /usr/local/etc/php-fpm.d/www.conf
|
||||
|
||||
RUN chmod +x /usr/local/bin/install; \
|
||||
chmod +x /usr/local/bin/upgrade
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
|
|
Reference in a new issue