added dockerfile for development (#377)
This commit is contained in:
41
Dockerfile
Normal file
41
Dockerfile
Normal file
@@ -0,0 +1,41 @@
|
||||
# This file is part of the Kimai time-tracking app.
|
||||
#
|
||||
# For the full copyright and license information, please view the LICENSE
|
||||
# file that was distributed with this source code.
|
||||
|
||||
FROM php:7.2.9-apache-stretch
|
||||
|
||||
WORKDIR /opt/kimai
|
||||
|
||||
RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer && \
|
||||
apt update && \
|
||||
apt install -y \
|
||||
git \
|
||||
libicu-dev \
|
||||
libjpeg-dev \
|
||||
libldap2-dev \
|
||||
libldb-dev \
|
||||
libpng-dev \
|
||||
unzip \
|
||||
zip \
|
||||
&& \
|
||||
docker-php-ext-install \
|
||||
gd \
|
||||
intl \
|
||||
ldap \
|
||||
pdo_mysql \
|
||||
zip && \
|
||||
apt-get -y autoremove && \
|
||||
apt-get clean && \
|
||||
git clone https://github.com/kevinpapst/kimai2.git /opt/kimai && \
|
||||
sed "s/prod/dev/g" .env.dist > .env && \
|
||||
composer install --dev --optimize-autoloader && \
|
||||
bin/console doctrine:database:create && \
|
||||
bin/console doctrine:schema:create && \
|
||||
bin/console doctrine:migrations:version --add --all && \
|
||||
bin/console cache:warmup && \
|
||||
chown -R www-data:www-data var
|
||||
|
||||
EXPOSE 8001
|
||||
USER www-data
|
||||
CMD /opt/kimai/bin/console server:run 0.0.0.0:8001
|
||||
53
var/docs/docker.md
Normal file
53
var/docs/docker.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Docker
|
||||
|
||||
We bundle a simple docker that can be used for test purposes. Either pull it from docker hub or build it.
|
||||
|
||||
## Build the docker
|
||||
|
||||
docker build -t kimai/kimai2:dev .
|
||||
|
||||
## Run the docker
|
||||
|
||||
docker run -ti -p 8001:8001 --name kimai2 --rm kimai/kimai2:dev
|
||||
|
||||
You can then access the site on http://127.0.0.1:8001. If that doesn't work check the IP of your docker:
|
||||
|
||||
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' kimai2
|
||||
|
||||
You can find Kimai at that IP on port 8001.
|
||||
|
||||
### Mac using docker-machine
|
||||
|
||||
When using dock-machine on your Mac, you need to use the IP of your machine.
|
||||
Considering you started the machine named `default`, you find the IP with:
|
||||
|
||||
docker-machine ip default
|
||||
|
||||
## Running commands in the docker
|
||||
|
||||
You can run any command in the container in this fashion once it is started. Add `-ti` to attach a terminal.
|
||||
|
||||
docker exec -ti kimai2 bash
|
||||
|
||||
## Create a user and dummy data
|
||||
|
||||
See the docs [here](installation.md) for full instructions, but this creates a user admin/admin with all privileges.
|
||||
|
||||
docker exec kimai2 bin/console kimai:create-user admin admin@example.com ROLE_SUPER_ADMIN admin
|
||||
|
||||
To install the fixtures:
|
||||
|
||||
docker exec kimai2 bin/console kimai:reset-dev
|
||||
|
||||
## Developing against the docker
|
||||
|
||||
It is possible to mount your source tree and sqlite DB into the container at run time.
|
||||
|
||||
docker run --rm -d -p 8001:8001 \
|
||||
-v $(pwd)/src:/opt/kimai/src \
|
||||
-v $(pwd)/var/data/kimai.sqlite:/opt/kimai/var/data/kimai.sqlite \
|
||||
--name kimai2 kimai/kimai2:dev
|
||||
|
||||
Now edits in the local file tree will be served by the container and database changes will persist.
|
||||
|
||||
See [The official docker documentation](https://docs.docker.com/) for more options on running the container.
|
||||
Reference in New Issue
Block a user