如何在Jenkins Docker容器中挂载Azure App Service存储?

3
我正在尝试在Azure应用服务中的Docker容器中托管Jenkins。这意味着它是“linux”托管。
默认情况下,jenkins/jenkins-2.110-alpine Docker image将其数据存储在容器中的/var/jenkins_home文件夹中。我希望将此数据/配置持久化到Azure持久性存储中,以便在容器重新启动时保持不变。
我已经阅读了documentationblogs,说明如果将容器数据存储在/home文件夹中,则可以使其持久化。
因此,我定制了Jenkins Dockerfile,使其看起来像这样...
FROM jenkins/jenkins:2.110-alpine

USER root
RUN mkdir /home/jenkins
RUN ln -s /var/jenkins_home /home/jenkins
USER jenkins

然而,当我部署到Azure应用服务时,在我的/home文件夹中看不到该文件(在Kudu控制台中查看)。应用程序可以正常启动,但在重新启动容器时会丢失所有数据。
我错过了什么?

嗨@anshoe,你找到那个问题的答案了吗? - Cyprien Autexier
1
你在应用程序设置中设置了环境变量WEBSITES_ENABLE_APP_SERVICE_STORAGE=true吗? - Ernani Joppert
1个回答

0

这是预期的,因为您只在Azure主机上保留了一个符号链接(ln -s /var/jenkins_home /home/jenkins)。所有文件都实际存在于容器内部。 要做到这一点,您必须实际更改Jenkins配置,将所有数据存储在您在上面创建的 /home/jenkins 中。

快速搜索Jenkins 数据文件夹建议您将环境变量JENKINS_HOME设置为您的目录。 在您的Dockerfile中:

ENV JENKINS_HOME /home/jenkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接