Install TimeTrex in PHP Docker image
This commit is contained in:
commit
9b26eabb7c
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.vagrant
|
36
Dockerfile
Normal file
36
Dockerfile
Normal file
@ -0,0 +1,36 @@
|
||||
FROM php:7.4-apache-bullseye
|
||||
ARG URL=https://www.timetrex.com/direct_download/TimeTrex_Community_Edition-manual-installer.zip
|
||||
|
||||
# Install PHP extensions
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
libarchive-tools \
|
||||
libpq-dev \
|
||||
zlib1g-dev \
|
||||
libpng-dev \
|
||||
libicu-dev \
|
||||
libxml2-dev \
|
||||
libzip-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN docker-php-ext-install pgsql gd gettext intl soap zip bcmath
|
||||
RUN ln -s "$(which php)" /usr/bin/php
|
||||
|
||||
# Download and place TimeTrex
|
||||
RUN curl -s "$URL" | bsdtar -xf- -C /var/www/html/ && \
|
||||
cp -r /var/www/html/TimeTrex_*/* /var/www/html/ && \
|
||||
rm -rf /var/www/html/TimeTrex_* && \
|
||||
cp timetrex.ini.php-example_linux timetrex.ini.php
|
||||
|
||||
# Create directories
|
||||
RUN mkdir -p /var/timetrex/storage && \
|
||||
mkdir -p /var/log/timetrex && \
|
||||
chgrp -R www-data /var/timetrex/ && \
|
||||
chmod 775 -R /var/timetrex && \
|
||||
chgrp www-data -R /var/log/timetrex/ && \
|
||||
chmod 775 -R /var/log/timetrex && \
|
||||
chgrp www-data -R /var/www/html/ && \
|
||||
chmod 775 -R /var/www/html/
|
||||
|
||||
# Add our own entrypoint
|
||||
COPY docker-timetrex-entrypoint /usr/local/bin
|
||||
ENTRYPOINT ["docker-timetrex-entrypoint"]
|
12
Vagrantfile
vendored
Normal file
12
Vagrantfile
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = "debian/bullseye64"
|
||||
config.vm.network "forwarded_port", guest: 8080, host: 8080
|
||||
config.vm.provision "shell", inline: <<-EOF
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y docker.io docker-compose
|
||||
usermod -aG docker vagrant
|
||||
cd /vagrant
|
||||
docker-compose up -d --build
|
||||
EOF
|
||||
end
|
23
docker-compose.yml
Normal file
23
docker-compose.yml
Normal file
@ -0,0 +1,23 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
timetrex:
|
||||
build: .
|
||||
ports:
|
||||
- 8080:80
|
||||
links:
|
||||
- postgres
|
||||
environment:
|
||||
POSTGRES_PASSWORD: password
|
||||
POSTGRES_HOST: postgres
|
||||
postgres:
|
||||
image: postgres:13-bullseye
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_DB: timetrex
|
||||
POSTGRES_USER: timetrex
|
||||
POSTGRES_PASSWORD: password
|
||||
|
||||
volumes:
|
||||
postgres:
|
10
docker-timetrex-entrypoint
Executable file
10
docker-timetrex-entrypoint
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
function timetrex_set() {
|
||||
sed -i '/^'"$1"' /s/=.*$/= '"$2"'/' /var/www/html/timetrex.ini.php
|
||||
}
|
||||
|
||||
timetrex_set 'base_url' "${BASE_URL:=\/\/interface}"
|
||||
timetrex_set 'password' "$POSTGRES_PASSWORD"
|
||||
timetrex_set 'host' "$POSTGRES_HOST"
|
||||
apache2-foreground
|
Loading…
Reference in New Issue
Block a user