mirror of https://github.com/itflow-org/itflow
75 lines
1.7 KiB
Docker
75 lines
1.7 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
LABEL dockerfile.version="v1.1" dockerfile.release-date="2023-01-03"
|
|
|
|
# Set up ENVs that will be utilized in compose file.
|
|
ENV TZ Etc/UTC
|
|
|
|
ENV ITFLOW_NAME ITFlow
|
|
|
|
ENV ITFLOW_URL demo.itflow.org
|
|
|
|
ENV ITFLOW_PORT 8080
|
|
|
|
ENV ITFLOW_REPO github.com/itflow-org/itflow
|
|
|
|
# apache2 log levels: emerg, alert, crit, error, warn, notice, info, debug
|
|
ENV ITFLOW_LOG_LEVEL warn
|
|
|
|
ENV ITFLOW_DB_HOST itflow-db
|
|
|
|
ENV ITFLOW_DB_PASS null
|
|
|
|
# Set timezone from TZ ENV
|
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
|
|
# PREREQS: php php-intl php-mysqli php-imap php-curl libapache2-mod-php mariadb-server git -y
|
|
# Upgrade, then install prereqs.
|
|
RUN apt-get update && apt-get upgrade -y && apt-get clean
|
|
|
|
# ITFlow Requirements
|
|
RUN apt-get install -y \
|
|
git\
|
|
apache2\
|
|
php
|
|
|
|
# Ubuntu quality of life installs
|
|
RUN apt-get install -y \
|
|
vim\
|
|
cron\
|
|
dnsutils\
|
|
iputils-ping
|
|
|
|
# Install & enable php extensions
|
|
RUN apt-get install -y \
|
|
php-intl\
|
|
php-mysqli\
|
|
php-curl\
|
|
php-imap
|
|
|
|
RUN apt-get install -y \
|
|
libapache2-mod-php\
|
|
libapache2-mod-md
|
|
|
|
# Enable md apache mod
|
|
RUN a2enmod md
|
|
|
|
# Set the work dir to the git repo.
|
|
WORKDIR /var/www/html
|
|
|
|
# Entrypoint
|
|
# On every run of the docker file, perform an entrypoint that verifies the container is good to go.
|
|
COPY entrypoint.sh /usr/bin/
|
|
|
|
RUN chmod +x /usr/bin/entrypoint.sh
|
|
|
|
# forward request and error logs to docker log collector
|
|
RUN ln -sf /dev/stdout /var/log/apache2/access.log && ln -sf /dev/stderr /var/log/apache2/error.log
|
|
|
|
ENTRYPOINT [ "entrypoint.sh" ]
|
|
|
|
# Expose the apache port
|
|
EXPOSE $ITFLOW_PORT
|
|
|
|
# Start the httpd service and have logs appear in stdout
|
|
CMD [ "apache2ctl", "-D", "FOREGROUND" ] |