概要
DockerでJenkinsをお手軽に作成して使っていたら、コンテナ再作成後エラーでログインできなくなったので、調べた内容をメモしておく。
エラー内容
下記のようなエラーが出た。
エラー内容
org.xmlpull.v1.XmlPullParserException: only 1.0 is supported as <?xml version not '1.1' (position: START_DOCUMENT seen <?xml version=\'1.1\'... @1:19)
at org.xmlpull.mxp1.MXParser.parseXmlDeclWithVersion(MXParser.java:2608)
at org.xmlpull.mxp1.MXParser.parseXmlDecl(MXParser.java:2592)
at org.xmlpull.mxp1.MXParser.parsePI(MXParser.java:2466)
at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1447)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:109)
・
・
・
原因
おそらく調子にのってJenkinsの管理画面から自動アップグレードを行ってしまったからなのか・・・。
コンテナを再作成すると、アップグレード前の状態に戻るが、設定は永続化して残しているので、そこら辺でエラーになってるのではないかと思う。
対処方法
config.xmlを修正すると復活できるようです。
使っているコンテナ例)
https://hub.docker.com/r/reflet/docker-jenkins/
※ ここでのコマンド例は、「 docker-compose up -d 」で起動しているとします。
1. Jenkinsコンテナへ接続
コンテナ自体は、起動しているので接続して操作する。
ターミナル
$ docker exec -it jenkins bash
2. config.xmlの修正
ターミナル
$ cd /var/jenkins_home/
$ vi config.xml
1行目のversionを修正 (1.1 -> 1.0)
<?xml version='1.1' encoding='UTF-8'?>
$ exit
3. Jenkins再起動
ターミナル
$ docker-compose restart jenkins
4. Jenkinsのバージョンアップ
下記URLへアクセスして、管理者権限のあるユーザーでJenkinsへログインする。
http://loalhost:8080/manage
※ 管理画面でJenkinsの自動アップデートを実行して、Jenkinsを再起動する
以上