mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
Merge pull request #1316 from openclassify/docker
Docker Compose with php7.4
This commit is contained in:
commit
03f10d384f
@ -16,3 +16,6 @@ ADMIN_EMAIL=admin@example.com
|
|||||||
ADMIN_PASSWORD=admin
|
ADMIN_PASSWORD=admin
|
||||||
APP_LOCALE=en
|
APP_LOCALE=en
|
||||||
APP_TIMEZONE=UTC
|
APP_TIMEZONE=UTC
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=redis
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|||||||
@ -104,7 +104,8 @@
|
|||||||
"fzaninotto/faker": "~1.4",
|
"fzaninotto/faker": "~1.4",
|
||||||
"symfony/css-selector": "3.1.*",
|
"symfony/css-selector": "3.1.*",
|
||||||
"symfony/dom-crawler": "3.1.*",
|
"symfony/dom-crawler": "3.1.*",
|
||||||
"anomaly/installer-module": "~2.4.0"
|
"anomaly/installer-module": "~2.4.0",
|
||||||
|
"laravel/sail": "^1.14"
|
||||||
},
|
},
|
||||||
"repositories": [
|
"repositories": [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -108,14 +108,21 @@ return [
|
|||||||
'redis' => [
|
'redis' => [
|
||||||
|
|
||||||
'cluster' => false,
|
'cluster' => false,
|
||||||
|
'client' => env('REDIS_CLIENT', 'phpredis'),
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
'host' => env('REDIS_HOST', 'localhost'),
|
'host' => env('REDIS_HOST', 'redis'),
|
||||||
'password' => env('REDIS_PASSWORD', null),
|
'password' => env('REDIS_PASSWORD'),
|
||||||
'port' => env('REDIS_PORT', 6379),
|
'port' => env('REDIS_PORT', 6379),
|
||||||
'database' => 0,
|
'database' => env('REDIS_DB', 0),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'cache' => [
|
||||||
|
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||||
|
'password' => env('REDIS_PASSWORD'),
|
||||||
|
'port' => env('REDIS_PORT', 6379),
|
||||||
|
'database' => env('REDIS_CACHE_DB', 1),
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@ -3,11 +3,11 @@ version: '3'
|
|||||||
services:
|
services:
|
||||||
laravel.test:
|
laravel.test:
|
||||||
build:
|
build:
|
||||||
context: ./vendor/laravel/sail/runtimes/8.1
|
context: ./docker/7.4
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
WWWGROUP: '${WWWGROUP}'
|
WWWGROUP: '${WWWGROUP}'
|
||||||
image: sail-8.1/app
|
image: sail-7.4/openclassify
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- 'host.docker.internal:host-gateway'
|
- 'host.docker.internal:host-gateway'
|
||||||
ports:
|
ports:
|
||||||
@ -22,9 +22,6 @@ services:
|
|||||||
- '.:/var/www/html'
|
- '.:/var/www/html'
|
||||||
networks:
|
networks:
|
||||||
- sail
|
- sail
|
||||||
depends_on:
|
|
||||||
- mysql
|
|
||||||
- redis
|
|
||||||
phpmyadmin:
|
phpmyadmin:
|
||||||
image: 'phpmyadmin:latest'
|
image: 'phpmyadmin:latest'
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
68
docker/7.4/Dockerfile
Normal file
68
docker/7.4/Dockerfile
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
FROM ubuntu:21.10
|
||||||
|
|
||||||
|
LABEL maintainer="Taylor Otwell"
|
||||||
|
|
||||||
|
ARG WWWGROUP
|
||||||
|
ARG NODE_VERSION=16
|
||||||
|
ARG POSTGRES_VERSION=14
|
||||||
|
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
ENV TZ=UTC
|
||||||
|
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \
|
||||||
|
&& mkdir -p ~/.gnupg \
|
||||||
|
&& chmod 600 ~/.gnupg \
|
||||||
|
&& echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
|
||||||
|
&& echo "keyserver hkp://keyserver.ubuntu.com:80" >> ~/.gnupg/dirmngr.conf \
|
||||||
|
&& gpg --recv-key 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c \
|
||||||
|
&& gpg --export 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c > /usr/share/keyrings/ppa_ondrej_php.gpg \
|
||||||
|
&& echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu impish main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y php7.4-cli php7.4-dev \
|
||||||
|
php7.4-pgsql php7.4-sqlite3 php7.4-gd \
|
||||||
|
php7.4-curl php7.4-memcached \
|
||||||
|
php7.4-imap php7.4-mysql php7.4-mbstring \
|
||||||
|
php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \
|
||||||
|
php7.4-intl php7.4-readline php7.4-pcov \
|
||||||
|
php7.4-msgpack php7.4-igbinary php7.4-ldap \
|
||||||
|
php7.4-redis php7.4-xdebug \
|
||||||
|
&& php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
|
||||||
|
&& curl -sLS https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \
|
||||||
|
&& apt-get install -y nodejs \
|
||||||
|
&& npm install -g npm \
|
||||||
|
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null \
|
||||||
|
&& echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||||
|
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /usr/share/keyrings/pgdg.gpg >/dev/null \
|
||||||
|
&& echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt impish-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y yarn \
|
||||||
|
&& apt-get install -y mysql-client \
|
||||||
|
&& apt-get install -y postgresql-client-$POSTGRES_VERSION \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y cron \
|
||||||
|
&& apt-get -y autoremove \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
RUN setcap "cap_net_bind_service=+ep" /usr/bin/php7.4
|
||||||
|
|
||||||
|
RUN groupadd --force -g $WWWGROUP sail
|
||||||
|
RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail
|
||||||
|
|
||||||
|
COPY start-container /usr/local/bin/start-container
|
||||||
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
COPY php.ini /etc/php/7.4/cli/conf.d/99-sail.ini
|
||||||
|
RUN chmod +x /usr/local/bin/start-container
|
||||||
|
|
||||||
|
COPY scheduler /etc/cron.d/scheduler
|
||||||
|
RUN chmod 0644 /etc/cron.d/scheduler
|
||||||
|
RUN crontab /etc/cron.d/scheduler
|
||||||
|
|
||||||
|
EXPOSE 8000
|
||||||
|
|
||||||
|
ENTRYPOINT ["start-container"]
|
||||||
4
docker/7.4/php.ini
Normal file
4
docker/7.4/php.ini
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[PHP]
|
||||||
|
post_max_size = 100M
|
||||||
|
upload_max_filesize = 100M
|
||||||
|
variables_order = EGPCS
|
||||||
1
docker/7.4/scheduler
Normal file
1
docker/7.4/scheduler
Normal file
@ -0,0 +1 @@
|
|||||||
|
* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1
|
||||||
17
docker/7.4/start-container
Normal file
17
docker/7.4/start-container
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [ ! -z "$WWWUSER" ]; then
|
||||||
|
usermod -u $WWWUSER sail
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d /.composer ]; then
|
||||||
|
mkdir /.composer
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod -R ugo+rw /.composer
|
||||||
|
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
exec gosu $WWWUSER "$@"
|
||||||
|
else
|
||||||
|
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
fi
|
||||||
17
docker/7.4/supervisord.conf
Normal file
17
docker/7.4/supervisord.conf
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
user=root
|
||||||
|
logfile=/var/log/supervisor/supervisord.log
|
||||||
|
pidfile=/var/run/supervisord.pid
|
||||||
|
|
||||||
|
[program:php]
|
||||||
|
command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80
|
||||||
|
user=sail
|
||||||
|
environment=LARAVEL_SAIL="1"
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
|
||||||
|
[include]
|
||||||
|
files=/var/www/html/supervisord/*.conf
|
||||||
5
supervisord/cron.conf
Normal file
5
supervisord/cron.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[program:cron]
|
||||||
|
command=/usr/sbin/cron -f -l 8
|
||||||
|
autostart=true
|
||||||
|
stdout_logfile=/var/log/cron.out.log
|
||||||
|
stderr_logfile=/var/log/cron.err.log
|
||||||
Loading…
Reference in New Issue
Block a user