-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #238 from micromata/8.0-Release
Docker images for 8.0 (amd64, arm64, Linux and macOS, including M1)
- Loading branch information
Showing
10 changed files
with
144 additions
and
132 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,43 @@ | ||
#FROM node:16.0.0-buster as buildreact | ||
#RUN apt-get update && apt-get -y upgrade | ||
#RUN mkdir /app | ||
#WORKDIR /app | ||
#RUN npm install -g [email protected] | ||
#COPY ./projectforge-webapp /app | ||
#RUN npm install | ||
#RUN npm run build | ||
|
||
FROM maven:3.8.1-jdk-15 AS build | ||
RUN mkdir /app | ||
COPY . /app | ||
FROM openjdk:17-slim | ||
|
||
# Argument for JAR file name to use in working directory: | ||
ARG JAR_FILE | ||
|
||
# Set working directory | ||
WORKDIR /app | ||
# http://whitfin.io/speeding-up-maven-docker-builds/ | ||
#RUN mvn dependency:go-offline -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B | ||
# -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B needed, otherwise log will be clipped (log limit reached) | ||
# RUN mvn install -DskipTests -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B | ||
# For test only: COPY projectforge-application-7.1.1.jar /app | ||
# mvn fails from time to time, so run mvn outside and copy projectforge-application/target/projectforge-application*.jar to current dir. | ||
RUN mkdir /dist | ||
WORKDIR /dist | ||
# For test only: RUN unzip /app/projectforge-application*.jar | ||
RUN unzip /app/projectforge-application-*.jar | ||
|
||
FROM openjdk:15-buster | ||
|
||
# See: https://spring.io/guides/gs/spring-boot-docker/ | ||
|
||
# This is a Debian system, update system packages (if needed) | ||
RUN apt-get update && apt-get -y upgrade | ||
|
||
RUN addgroup projectforge && adduser --ingroup projectforge projectforge | ||
# ProjectForge's base dir: must be mounted on host file system: | ||
RUN mkdir /ProjectForge | ||
# Grant access for user projectforge: | ||
RUN chown projectforge.projectforge /ProjectForge | ||
VOLUME /ProjectForge | ||
|
||
RUN mkdir -p /app | ||
|
||
# Copy the specified JAR file into the container | ||
COPY ${JAR_FILE} /app/application.jar | ||
COPY docker/entrypoint.sh /app/entrypoint.sh | ||
|
||
# Set permissions for the entrypoint script | ||
RUN chmod +x /app/entrypoint.sh | ||
|
||
# Expose application port | ||
EXPOSE 8080 | ||
|
||
USER projectforge:projectforge | ||
# Use a non-root user | ||
RUN addgroup --system projectforge && adduser --system --ingroup projectforge projectforge | ||
|
||
# Install findutils (xargs needed by gradle) | ||
#RUN apt-get update && apt-get install -y findutils && rm -rf /var/lib/apt/lists/* | ||
# pgrep needed by the entrypoint.sh | ||
RUN apt-get update && apt-get install -y procps && rm -rf /var/lib/apt/lists/* | ||
|
||
# Don't put fat jar files in docker images: https://phauer.com/2019/no-fat-jar-in-docker-image/ | ||
ARG DEPENDENCY=/dist | ||
COPY --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib | ||
COPY --from=build ${DEPENDENCY}/META-INF /app/META-INF | ||
COPY --from=build ${DEPENDENCY}/BOOT-INF/classes /app | ||
|
||
#COPY --from=buildreact /app ${DEPENDENCY}/BOOT-INF/classes | ||
# Expose the port and declare the volume | ||
RUN mkdir -p /ProjectForge && chown -R projectforge:projectforge /ProjectForge | ||
VOLUME /ProjectForge | ||
|
||
COPY docker/environment.sh /ProjectForge | ||
|
||
COPY --from=build --chown=projectforge:projectforge /app/docker/entrypoint.sh /app | ||
RUN chmod 755 /app/entrypoint.sh | ||
# Switch to the non-root user | ||
USER projectforge:projectforge | ||
|
||
# Run the Spring Boot application | ||
ENTRYPOINT ["/app/entrypoint.sh"] | ||
# ENTRYPOINT ["java", "-jar", "/app/application.jar"] | ||
|
||
MAINTAINER Micromata | ||
LABEL maintainer="Micromata" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#!/bin/bash | ||
|
||
# Set the java options and arguments here for Your docker installation only. | ||
|
||
# Increase ProjectForge's memory settings: | ||
#export JAVA_OPTS=-Xms1g -Xmx1g | ||
export JAVA_OPTS= | ||
|
||
# Define your optional program arguments here | ||
export JAVA_ARGS= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: ProjectForge 8.0 released | ||
date: 2024-12-23 | ||
--- | ||
:page-liquid: | ||
|
||
|
||
++++ | ||
{% include tag.html tag="improved" %} | ||
++++ | ||
- Own CardDav-Implementation for synchronization of contacts (tested with Apple contacts (macOS/iOS), Thunderbird). | ||
- Sipgate interface implemented for synchronization of address. | ||
- Calendar view improved. | ||
- Excel-Export of vacations for all employees, teams and colleagues. | ||
- Birthdaybutler for monthly birthday list. | ||
- Export of timesheets as xlsx. | ||
- Attachments to books added. | ||
- lots of minor improvements. | ||
++++ | ||
{% include tag.html tag="fixed" %} | ||
++++ | ||
- several bugs fixed. | ||
++++ | ||
{% include tag.html tag="admin" %} | ||
++++ | ||
|
||
++++ | ||
{% include tag.html tag="security" %} | ||
++++ | ||
|
||
++++ | ||
{% include tag.html tag="technology" %} | ||
- New major versions: Java 17, Spring 6.1.15, Hibernate 6.6.3, Hibernate search 7.2.1, javax -> jakarta, React/Router, Wicket 10.2, ... | ||
++++ | ||
|
||
++++ | ||
{% include download-link.html %} | ||
++++ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,22 +19,28 @@ You may choose now between Docker based installation or normal installation. | |
Or, as a developer, you may also refer https://github.com/micromata/projectforge/[ProjectForge on GitHub]. | ||
|
||
=== Docker | ||
You may install ProjectForge as docker image. | ||
You may install ProjectForge as docker image. You may run ProjectForge as docker image since version 8.0 | ||
on Linux (amd64 and arm64) as well as on MacOS (Intel or Silicon). | ||
|
||
We assume `/home/projectforge/ProjectForge` as ProjectForge's home in this documentation, but you may choose anything else (will be created or should be empty if already exists). | ||
|
||
For test or small installations you may use the built-in data base (embedded). | ||
For test or small installations you may use the built-in database (embedded). | ||
|
||
==== Running single docker container | ||
|
||
1. First start `docker run -t -i -p 127.0.0.1:8080:8080 -v $HOME/ProjectForge:/ProjectForge --name projectforge micromata/projectforge` | ||
2. Follow setup wizard below. | ||
3. Enjoy. | ||
4. Stop ProjectForge by pressing `CTRL-C` or `docker stop projectforge`. | ||
|
||
You may monitor the log file: `tail -f ~/ProjectForge/logs/ProjectForge.log` | ||
|
||
To stop and start use `docker start/stop projectforge`. | ||
|
||
For full functionality of all plugins, you should restart the docker container: | ||
|
||
1. `docker stop projectforge` | ||
2. `docker start projectforge` | ||
|
||
==== Running as stack (docker-compose) | ||
|
||
|
@@ -49,20 +55,14 @@ To stop and start user `docker-compose up/down`. | |
|
||
You may monitor the log file: `tail -f ~/ProjectForge/logs/ProjectForge.log` | ||
|
||
==== Building docker container from source | ||
|
||
1. `git clone [email protected]:micromata/projectforge.git` | ||
2. `cd projectforge` | ||
3. `docker build -t micromata/projectforge:latest .` | ||
|
||
==== Increasing memory | ||
|
||
Edit `~/ProjectForge/environment.sh` for customizing settings of ProjectForge as environment variables. | ||
For configuring ProjectForge, go to ProjectForge base dir: | ||
1. `projectforge.properties` for customizing settings of ProjectForge. | ||
2. `environment.sh` for customizing settings of Java options (increasing memory size etc.). | ||
|
||
=== Java-Installation (without docker) | ||
If you don't want to use Docker, you're able to install ProjectForge from the executable jar file. | ||
|
||
1. Install openjdk (java >8 should also work, if needed, 11+ recommended). | ||
1. Install openjdk 17. | ||
2. Get projectForge-application_version.jar | ||
3. First start: java -jar projectForge-application_version.jar | ||
|
||
|