This commit is contained in:
Lance Pioch
2024-06-26 15:42:16 -04:00
committed by Michael (Parker) Parker
parent 6e998498e3
commit 9779365432
5 changed files with 41 additions and 49 deletions

View File

@ -1,3 +1,3 @@
APP_KEY=
DB_DATABASE=docker/database.sqlite
DB_DATABASE=database.sqlite

View File

@ -2,40 +2,12 @@
#mkdir -p /var/log/supervisord/ /var/log/php8/ \
## check for .env file and generate app keys if missing
if [ -f /pelican-data/.env ]; then
echo "external vars exist."
rm -rf /var/www/html/.env
else
echo "external vars don't exist."
rm -rf /var/www/html/.env
touch /pelican-data/.env
## manually generate a key because key generate --force fails
if [ -z $APP_KEY ]; then
echo -e "Generating key."
APP_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
echo -e "Generated app key: $APP_KEY"
echo -e "APP_KEY=$APP_KEY" > /pelican-data/.env
else
echo -e "APP_KEY exists in environment, using that."
echo -e "APP_KEY=$APP_KEY" > /pelican-data/.env
fi
fi
ln -s /pelican-data/.env /var/www/html/
touch /pelican-data/database.sqlite
if ! grep -q "APP_KEY=" .env || grep -q "APP_KEY=$" .env; then
echo "Generating APP_KEY..."
php artisan key:generate --force
else
echo "APP_KEY is already set."
fi
## Make sure the app key is set
php artisan key:generate
## make sure the db is set up
echo -e "Migrating and Seeding Database"
touch database/database.sqlite
php artisan migrate --force
## start cronjobs for the queue

View File

@ -3,9 +3,8 @@
}
{$APP_URL} {
root * /var/www/html/public
root * /srv/public
encode gzip
php_fastcgi 127.0.0.1:9000
php_fastcgi panel:9000
file_server
}

View File

@ -20,11 +20,10 @@ WORKDIR /var/www/html
RUN apk update && apk add --no-cache \
libpng-dev libjpeg-turbo-dev freetype-dev libzip-dev icu-dev \
zip unzip curl \
caddy ca-certificates supervisor \
&& docker-php-ext-install bcmath gd intl zip opcache pcntl posix
ca-certificates supervisor
# Copy the Caddyfile to the container
COPY Caddyfile /etc/caddy/Caddyfile
# Additional PHP Extensions
RUN docker-php-ext-install bcmath gd intl zip opcache pcntl posix
# Copy the application code to the container
COPY . .
@ -44,13 +43,10 @@ RUN chmod -R 755 /var/www/html/storage \
HEALTHCHECK --interval=5m --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost/up || exit 1
EXPOSE 80:2019
EXPOSE 443
VOLUME /pelican-data
# Start PHP-FPM
CMD ["sh", "-c", "php-fpm & caddy run --config /etc/caddy/Caddyfile --adapter caddyfile"]
CMD ["sh", "-c", "php-fpm"]
ENTRYPOINT [ "/bin/ash", ".github/docker/entrypoint.sh" ]
# CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]

View File

@ -30,22 +30,47 @@ x-common:
services:
panel:
image: panel
restart: always
ports:
- "80:2019"
- "443:443"
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- pelican-data:/pelican-data
- pelican-logs:/var/www/html/storage/logs
- .:/srv
environment:
<<: [*panel-environment, *mail-environment]
working_dir: /srv
caddy:
image: caddy:2-alpine
restart: unless-stopped
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-data:/data
- caddy-config:/config
- .:/srv
ports:
- 80:80
- 443:443
env_file:
- ./.env.docker
environment:
<<: [ *panel-environment, *mail-environment ]
XDG_DATA_HOME: /pelican-data
logging:
driver: "json-file"
options:
max-size: "1M"
max-file: "10"
command:
- /bin/sh
- -c
- |
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
volumes:
pelican-data:
pelican-logs:
caddy-data:
caddy-config:
networks:
default: