Добрый день.
Есть java приложение (парсер), которое будет запускаться внутри контейнера. Создал Dockerfile, а также docker-compose.yml
Все корректно работает, но после завершения работы парсера, контейнер останавливается.
Является ли корректным решением запускать контейнер при помощи CRON? Если да, то как-то сделать?
Пробовал запускать jar файл по крону ВНУТРИ контейнера, но как я понял по завершению работы jar файла контейнер останавливается и соответственно, дальше крон не срабатывает.
Заранее благодарен.
Dockerfile
FROM adoptopenjdk/openjdk11:x86_64-ubuntu-jdk-11.0.12_7 as build
COPY . /srv
RUN cd /srv && ./mvnw clean package
WORKDIR /srv
ARG API_VERSION=1.0
FROM adoptopenjdk/openjdk11:x86_64-ubuntu-jdk-11.0.12_7
RUN mkdir -p /srv/uploads/
#CRON
#ADD docker-cron /etc/cron.d/docker-cron
#RUN chmod 0644 /etc/cron.d/docker-cron
#RUN touch /var/log/cron.log
#RUN apt-get update && apt-get install cron
#CMD cron && tail -f /var/log/cron.log
ENV API_VERSION=1.0
COPY --from=build /srv/target/parser-${API_VERSION}.jar /srv/parser-${API_VERSION}.jar
ENTRYPOINT exec java -jar /srv/parser-${API_VERSION}.jar
docker-cron
0 0 0/2 1/1 * ? * java -jar /srv/parser-${API_VERSION}.jar >> /var/log/cron.log 2>&1
# An empty line is required at the end of this file for a valid cron file.
docker-compose
version: '3.8'
services:
parser:
build:
context: ./
dockerfile: Dockerfile
container_name: parser
restart: always