This is my Dockerfile
FROM Base-Image
COPY --from=baseimage:version /
ENTRYPOINT ["/bin/Startup.py"]
RUN yum install --setopt=obsoletes=0 graalvm20-ee-8-jdk-20.3.3 && \
yum -y install cronie && \
yum clean all
RUN mkdir -p /etc/runit/artifacts && \
mkdir -p /etc/runit/artifacts/projectname/target
COPY ./target/projectname-*.jar /etc/runit/artifacts/projectname/target
COPY ./target/classes/com/company/team/internal/cron/JavaCronFile.class
/etc/runit/artifacts/projectname/target/
COPY ./start.sh /etc/runit/artifacts/projectname
COPY docker/scripts/crontab /etc/crontab
RUN chmod 660 /etc/crontab && \
/usr/bin/crontab /etc/crontab && \
setup-supercronic /etc/crontab
docker/scripts/crontab file :
* * * * * java JavaCronFile
# * * * * * java -cp /etc/runit/artifacts/projectname/target/ JavaCronFile
# * * * * * java -version
I have a dockerfile which copies the java project "projectname" , installs cronie and runs the above crontab.
If I run just
* * * * * java -version
I do see java version getting printed at the cadence ( 1 min in this case) . Also if I go to the docker container and cd /etc/runit/artifacts/projectname/target/ I do see the .class file JavaCronFile.class present.
But for
1: * * * * * java JavaCronFile
2: * * * * * java -cp /etc/runit/artifacts/projectname/target/ JavaCronFile
3: * * * * * java com.company.team.internal.cron.JavaCronFile
4: * * * * * java -classpath /etc/runit/artifacts/projectname/target/
com.company.team.internal.cron.JavaCronFile
I get : Error: Could not find or load main class JavaCronFile.
I have already referred to following stackoverflow links :