我想使用alpine创建一个docker文件(因为它创建一个轻量级图像)和一个cron(定期执行一个任务),作为一个新手我最初尝试使用ubuntu它工作得很完美,因为我从这里得到了帮助链接UbuntuExample with CRON
现在问题是它创造了沉重的码头图像。我想将这个相同的例子换成高山,但找不到完美的帮助。搜索了很多网站,但没有得到任何丰富的成果。
主要任务: -
我的主要任务是通过docker执行java jar文件并定期执行该jar文件
我到目前为止所尝试的是创建一个简单的docker文件和一个crontab文件,只是为了定期打印消息。
我面临的主要问题是在高山上安装cron。
DOCKERFILE(DockerFile)
FROM ubuntu:latest
MAINTAINER docker@ekito.fr
# Add crontab file in the cron directory
ADD crontab /etc/cron.d/hello-cron
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
#Install Cron
RUN apt-get update
RUN apt-get -y install cron
# Run the command on container startup
CMD cron && tail -f /var/log/cron.log
CRONTAB(crontab)
* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1
# Don't remove the empty line at the end of this file. It is required to run the cron job
这对ubuntu非常有用,但是如何实现openjdk:8-jre-alpine
答案 0 :(得分:3)
openjdk:8-jre-alpine图像库的一个例子:
Dockerfile:
FROM openjdk:8-jre-alpine
MAINTAINER dperezcabrera
ADD java-version-cron /temp/java-version-cron
RUN cat /temp/java-version-cron >> /etc/crontabs/root
RUN rm /temp/java-version-cron
RUN touch /var/log/cron.log
CMD crond 2>&1 >/dev/null && tail -f /var/log/cron.log
脚本java-version-cron
:
* * * * * /usr/bin/java -version >>/var/log/cron.log 2>&1
答案 1 :(得分:2)
终于完成了使用cron执行java jar的任务。发布解决方案,以便它可以帮助其他初学者。
Dockerfile
FROM openjdk:8-jre-alpine
MAINTAINER dperezcabrera
RUN apk update && apk add bash
ADD java-version-cron /temp/java-version-cron
RUN chmod 777 /etc/test/
ADD DockerTesting-0.0.1-SNAPSHOT.jar /etc/test
RUN cat /temp/java-version-cron >> /etc/crontabs/root
RUN rm /temp/java-version-cron
RUN touch /var/log/cron.log
CMD crond 2>&1 >/dev/null && tail -f /var/log/cron.log
<强> java的版本的cron 强>
* * * * * java -jar /etc/test/DockerTesting-0.0.1-SNAPSHOT.jar >> /var/log/cron.log 2>&1
# Don't remove the empty line at the end of this file. It is required to run the cron job
将dockerfile,cron和jar放在同一个文件夹中或根据您的要求。
答案 2 :(得分:0)
n <- 10000
list <- numeric(n)
for(i in 1:n){
trial1 <- sample(0:9,3, replace = TRUE)
trial2 <- sample(0:9,3, replace = TRUE)
winner <- if(trial1 == trial2) 500 else -1
list[i] <-winner
}
mean(list)