
デフォルトでは、有効になっているJenkinsでCSRF保護を無効にする必要があります。問題は、コンテナ化後にジェンキンを含む新しいコンテナを起動すると、「有効な移動パスなし」エラーが発生することです。
現在、このcmdを使用してJenkinsアプリケーションを開いています。
/usr/bin/java -server -Djava.net.preferIPv4Stack=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration=false -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=9090 --ajp13Port=-1
答え1
CSRFを無効にするには、Groovyを使用して「Jenkinsの管理」/「スクリプトコンソール」を開きます。
import jenkins.model.Jenkins
def instance = Jenkins.instance
instance.setCrumbIssuer(null)
答え2
私はちょうど追加
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
したがって、完全なコマンドは次のようになります。
docker run --restart=always --name jenkins --add-host="xxxx:xx" --add-host="updates.jenkins-ci.org:7.223.199.227" --add-host="updates.jenkins.org:7.223.199.227" -u root -d -p 8080:8080 -p 50000:50000 -v /root/jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -e JAVA_OPTS="-Duser.timezone=Asia/Shanghai -Dhudson.model.DownloadService.noSignatureCheck=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true" docker.io/jenkins/jenkins:lts
答え3
「クロスサイトリクエスト偽造防止」パラメータの選択を解除した後、@hoeflingに追加されました。救う。
「Jenkinsの管理」に移動し、「ディスクから構成を再ロードする」をクリックします。
答え4
ユースケースについては100%確信できませんが、常にDockerを使用して新しいDockerイメージを作成し、Dockerfile
そのイメージを実行するオプションがあります。では、Dockerfile
環境変数を使用してシステムプロパティを設定できますJAVA_OPTS
。
FROM jenkins/jenkins:latest
ENV JAVA_OPTS -Djava.net.preferIPv4Stack=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration=false