Use .env file with docker image
This commit is contained in:
39
Dockerfile
39
Dockerfile
@@ -1,42 +1,33 @@
|
||||
FROM debian:jessie
|
||||
|
||||
ENV DB_DRIVER=mysql \
|
||||
ENV=production \
|
||||
DB_DATABASE=cachet \
|
||||
DB_HOST= \
|
||||
DB_USERNAME= \
|
||||
DB_PASSWORD= \
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY . /var/www/html/
|
||||
WORKDIR /var/www/html/
|
||||
|
||||
# Using nodesource and debian jessie packages instead of compiling from scratch
|
||||
RUN echo "APT::Install-Recommends \"0\";" >> /etc/apt/apt.conf.d/02recommends && \
|
||||
RUN DEBIAN_FRONTEND=noninteractive \
|
||||
echo "APT::Install-Recommends \"0\";" >> /etc/apt/apt.conf.d/02recommends && \
|
||||
echo "APT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/02recommends && \
|
||||
apt-get -qq update && \
|
||||
apt-get -qq install \
|
||||
ca-certificates nginx php5-fpm=5.* php5-curl php5-readline php5-mcrypt php5-mysql php5-apcu php5-cli \
|
||||
git sqlite libsqlite3-dev curl supervisor php5-pgsql && \
|
||||
apt-get clean && apt-get autoremove -qq && \
|
||||
rm -rf /var/lib/apt/lists/* /usr/share/doc /usr/share/man /tmp/* && \
|
||||
chown -R www-data /var/www/html
|
||||
rm -rf /var/lib/apt/lists/* /usr/share/doc /usr/share/man /tmp/*
|
||||
|
||||
# Hardcode the Illuminate key in config/app.php. If you want security, feel free
|
||||
# to override the key in your own container with a 'php artisan key:generate' :)
|
||||
RUN sed -i "s/'key' => '\w.*/'key' => 'f20d3e5ae02125a94bd60203a4edfbde',/" config/app.php && \
|
||||
grep key config/app.php
|
||||
COPY docker/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
COPY docker/entrypoint.sh /sbin/entrypoint.sh
|
||||
COPY . /var/www/html/
|
||||
WORKDIR /var/www/html/
|
||||
|
||||
# copy the various nginx and supervisor conf (to handle both fpm and nginx)
|
||||
RUN sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php5/fpm/php-fpm.conf ;\
|
||||
echo "daemon off;" >> /etc/nginx/nginx.conf ;\
|
||||
mv /var/www/html/docker/php-fpm-pool.conf /etc/php5/fpm/pool.d/www.conf ;\
|
||||
rm -f /etc/nginx/sites-enabled/* && rm -f /etc/nginx/conf.d/* && mv /var/www/html/docker/nginx-site.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php && php composer.phar install --no-dev -o
|
||||
|
||||
COPY docker/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
rm -f /etc/nginx/sites-enabled/* ;\
|
||||
rm -f /etc/nginx/conf.d/* ;\
|
||||
mv /var/www/html/docker/nginx-site.conf /etc/nginx/conf.d/default.conf ;\
|
||||
mv /var/www/html/docker/.env.docker /var/www/html/.env ;\
|
||||
rm -r /var/www/html/docker ;\
|
||||
chown -R www-data /var/www/html ;\
|
||||
curl -sS https://getcomposer.org/installer | php && php composer.phar install --no-dev -o
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["/usr/bin/supervisord"]
|
||||
CMD ["/sbin/entrypoint.sh"]
|
||||
22
docker/.env.docker
Normal file
22
docker/.env.docker
Normal file
@@ -0,0 +1,22 @@
|
||||
APP_ENV={{APP_ENV}}
|
||||
APP_DEBUG={{APP_DEBUG}}
|
||||
APP_URL={{APP_URL}}
|
||||
APP_KEY={{APP_KEY}}
|
||||
|
||||
DB_DRIVER={{DB_DRIVER}}
|
||||
DB_HOST={{DB_HOST}}
|
||||
DB_DATABASE={{DB_DATABASE}}
|
||||
DB_USERNAME={{DB_USERNAME}}
|
||||
DB_PASSWORD={{DB_PASSWORD}}
|
||||
|
||||
CACHE_DRIVER={{CACHE_DRIVER}}
|
||||
SESSION_DRIVER={{SESSION_DRIVER}}
|
||||
QUEUE_DRIVER={{QUEUE_DRIVER}}
|
||||
|
||||
MAIL_DRIVER={{MAIL_DRIVER}}
|
||||
MAIL_HOST={{MAIL_HOST}}
|
||||
MAIL_PORT={{MAIL_PORT}}
|
||||
MAIL_USERNAME={{MAIL_USERNAME}}
|
||||
MAIL_PASSWORD={{MAIL_PASSWORD}}
|
||||
MAIL_ADDRESS={{MAIL_ADDRESS}}
|
||||
MAIL_NAME={{MAIL_NAME}}
|
||||
58
docker/entrypoint.sh
Executable file
58
docker/entrypoint.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
APP_ENV=${APP_ENV:-local}
|
||||
APP_DEBUG=${APP_DEBUG:-true}
|
||||
APP_URL=${APP_URL:-http://localhost}
|
||||
APP_KEY=${APP_KEY:-SomeRandomString}
|
||||
|
||||
DB_DRIVER=${DB_DRIVER:-mysql}
|
||||
DB_HOST=${DB_HOST:-mysql}
|
||||
DB_DATABASE=${DB_DATABASE:-cachet}
|
||||
DB_USERNAME=${DB_USERNAME:-cachet}
|
||||
DB_PASSWORD=${DB_PASSWORD:-cachet}
|
||||
|
||||
CACHE_DRIVER=${CACHE_DRIVER:-file}
|
||||
SESSION_DRIVER=${SESSION_DRIVER:-file}
|
||||
QUEUE_DRIVER=${QUEUE_DRIVER:-database}
|
||||
|
||||
MAIL_DRIVER=${MAIL_DRIVER:-smtp}
|
||||
MAIL_HOST=${MAIL_HOST:-mailtrap.io}
|
||||
MAIL_PORT=${MAIL_PORT:-2525}
|
||||
MAIL_USERNAME=${MAIL_USERNAME:-null}
|
||||
MAIL_PASSWORD=${MAIL_PASSWORD:-null}
|
||||
MAIL_ADDRESS=${MAIL_ADDRESS:-null}
|
||||
MAIL_NAME=${MAIL_NAME:-null}
|
||||
|
||||
# configure env file
|
||||
|
||||
sed 's,{{APP_ENV}},'"${APP_ENV}"',g' -i /var/www/html/.env
|
||||
sed 's,{{APP_DEBUG}},'"${APP_DEBUG}"',g' -i /var/www/html/.env
|
||||
sed 's,{{APP_URL}},'"${APP_URL}"',g' -i /var/www/html/.env
|
||||
sed 's,{{APP_KEY}},'"${APP_KEY}"',g' -i /var/www/html/.env
|
||||
|
||||
sed 's,{{DB_DRIVER}},'"${DB_DRIVER}"',g' -i /var/www/html/.env
|
||||
sed 's,{{DB_HOST}},'"${DB_HOST}"',g' -i /var/www/html/.env
|
||||
sed 's,{{DB_DATABASE}},'"${DB_DATABASE}"',g' -i /var/www/html/.env
|
||||
sed 's,{{DB_USERNAME}},'"${DB_USERNAME}"',g' -i /var/www/html/.env
|
||||
sed 's,{{DB_PASSWORD}},'"${DB_PASSWORD}"',g' -i /var/www/html/.env
|
||||
|
||||
sed 's,{{CACHE_DRIVER}},'"${CACHE_DRIVER}"',g' -i /var/www/html/.env
|
||||
sed 's,{{SESSION_DRIVER}},'"${SESSION_DRIVER}"',g' -i /var/www/html/.env
|
||||
sed 's,{{QUEUE_DRIVER}},'"${QUEUE_DRIVER}"',g' -i /var/www/html/.env
|
||||
|
||||
sed 's,{{MAIL_DRIVER}},'"${MAIL_DRIVER}"',g' -i /var/www/html/.env
|
||||
sed 's,{{MAIL_HOST}},'"${MAIL_HOST}"',g' -i /var/www/html/.env
|
||||
sed 's,{{MAIL_PORT}},'"${MAIL_PORT}"',g' -i /var/www/html/.env
|
||||
sed 's,{{MAIL_USERNAME}},'"${MAIL_USERNAME}"',g' -i /var/www/html/.env
|
||||
sed 's,{{MAIL_PASSWORD}},'"${MAIL_PASSWORD}"',g' -i /var/www/html/.env
|
||||
sed 's,{{MAIL_ADDRESS}},'"${MAIL_ADDRESS}"',g' -i /var/www/html/.env
|
||||
sed 's,{{MAIL_NAME}},'"${MAIL_NAME}"',g' -i /var/www/html/.env
|
||||
|
||||
#Clear cache
|
||||
/usr/bin/php composer.phar install --no-dev -o
|
||||
|
||||
echo "Starting supervisord..."
|
||||
exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user