Add docker files

This commit is contained in:
Asherslab 2018-05-17 22:53:17 -04:00 committed by Lance Pioch
parent d9948f2876
commit 42e3eecf80
4 changed files with 105 additions and 1 deletions

2
.gitignore vendored
View file

@ -20,7 +20,7 @@ sami.phar
# For local development with docker
# Remove if we ever put the Dockerfile in the repo
.dockerignore
Dockerfile
#Dockerfile
docker-compose.yml
# for image related files
misc

26
Dockerfile Normal file
View file

@ -0,0 +1,26 @@
FROM alpine:3.7
WORKDIR /app
RUN apk add --no-cache wget ca-certificates && \
wget -O /etc/apk/keys/phpearth.rsa.pub https://repos.php.earth/alpine/phpearth.rsa.pub && \
echo "https://repos.php.earth/alpine/v3.7" >> /etc/apk/repositories && \
apk add --no-cache --update certbot nginx dcron curl tini php7.2 php7.2-bcmath php7.2-common php7.2-dom php7.2-fpm php7.2-gd php7.2-mbstring php7.2-openssl php7.2-zip php7.2-pdo php7.2-phar php7.2-json php7.2-pdo_mysql php7.2-session php7.2-ctype php7.2-tokenizer php7.2-zlib php7.2-simplexml && \
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
COPY . ./
COPY default.conf /etc/nginx/conf.d/default.conf
RUN cp .env.example .env
RUN composer install --no-dev
EXPOSE 80
EXPOSE 443
RUN chown -R www-data:www-data .
RUN chmod -R 777 storage/* bootstrap/cache /var/run/php
ENTRYPOINT ["ash", "entrypoint.sh"]

51
default.conf Normal file
View file

@ -0,0 +1,51 @@
# If using Ubuntu this file should be placed in:
# /etc/nginx/sites-available/
#
# If using CentOS this file should be placed in:
# /etc/nginx/conf.d/
#
server {
listen 80;
server_name _;
root /app/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# the fastcgi_pass path needs to be changed accordingly when using CentOS
fastcgi_pass unix:/var/run/php/php-fpm7.2.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}

27
entrypoint.sh Normal file
View file

@ -0,0 +1,27 @@
#!/bin/ash
tini -- php-fpm
until nc -z -v -w30 $DB_HOST 3306
do
echo "Waiting for database connection..."
# wait for 5 seconds before check again
sleep 5
done
sed -i s/DB_HOST=127.0.0.1/DB_HOST=$DB_HOST/g /app/.env
sed -i s/DB_DATABASE=panel/DB_DATABASE=$DB_DATABASE/g /app/.env
sed -i s/DB_USERNAME=pterodactyl/DB_USERNAME=$DB_USERNAME/g /app/.env
sed -i s/DB_PASSWORD=/DB_PASSWORD=$DB_PASSWORD/g /app/.env
#echo "1"
#chown -R www-data:www-data .
#echo "2"
#chmod -R 777 storage/* bootstrap/cache /var/run/php
echo "3"
php artisan key:generate --force
echo "4"
php artisan migrate --force
echo "5"
php artisan db:seed --force
echo "Done"
nginx -g 'pid /tmp/nginx.pid; daemon off;'