blob: 351f8cfc46bf82ba8d21c00c93cb6eed323591a9 [file] [log] [blame]
FROM openjdk:17-alpine
## This Dockerfile checks out and builds all of ctakes. Is there a reason for this?
## If you just checked in some fresh code and can't wait for a jenkins build then ok.
## Otherwise you can just check out the ctakes-web-rest directory and build it for the war.
## You can also add ctakes-web-rest as a dependency in a -dummy- pom with an output directory for the war.
## If you do have brand new code then another tactic is a copy of local source into the container, then building.
## That is more useful for developers who are not ctakes committers.
## Consider offering multiple dockerfiles.
RUN apk update && \
apk add --no-cache git openssh ca-certificates openssl wget unzip subversion maven
## Download apache-tomcat and extract:
RUN wget http://mirror.cc.columbia.edu/pub/software/apache/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.zip && \
unzip apache-tomcat-10.1.26.zip
## Check out version of ctakes with best working web-rest module
RUN git clone https://github.com/apache/ctakes.git
## Copy hsql dictionary descriptor into right location
RUN mkdir -p /ctakes/resources/org/apache/ctakes/dictionary/lookup/fast/ && \
wget -q -O dict.zip https://downloads.sourceforge.net/project/ctakesresources/sno_rx_16ab.zip && \
unzip -o dict.zip -d /ctakes/resources/org/apache/ctakes/dictionary/lookup/fast/
COPY customDictionary.xml /ctakes/ctakes-web-rest/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/
# This version of the default piper comments out a memory-intensive negation module. If you need to run
# negation detection, then comment out this line.
COPY Default.piper /ctakes/ctakes-web-rest/src/main/resources/pipers/
COPY TinyRestPipeline.piper /ctakes/ctakes-web-rest/src/main/resources/pipers/
WORKDIR /ctakes
# There is a profile to skip the building of zip distributables and another to build the web-rest war.
RUN mvn package -P no-zips-build,web-rest-build -DskipTests
WORKDIR /
RUN mv /ctakes/ctakes-web-rest/target/ctakes-web-rest.war /apache-tomcat-10.1.26/webapps/
ENV TOMCAT_HOME=/apache-tomcat-10.1.26
ENV CTAKES_HOME=/ctakes
EXPOSE 8080
WORKDIR $TOMCAT_HOME
RUN chmod u+x bin/*.sh
CMD bin/catalina.sh run