-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
いくつかの問題がありRPMのビルドに失敗します。
sbtのリポジトリ追加方法が古い
centosにrpmリポジトリを追加する方法が変更されており、いまのDockerfileの記述だとsbtのインストールに失敗します。
| curl https://bintray.com/sbt/rpm/rpm | tee /etc/yum.repos.d/bintray-sbt-rpm.repo; \ |
sbt Reference Manualを参考にして、以下のような記述に書き換える必要があります。
- curl https://bintray.com/sbt/rpm/rpm | tee /etc/yum.repos.d/bintray-sbt-rpm.repo; \
+ curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo; \
+ mv sbt-rpm.repo /etc/yum.repos.d/; \不要な?SBT_OPTS
上の問題を修正してもパッケージ作成時に以下のようなエラーが発生します。
エラーログ
+ /usr/bin/sbt clean rpm:packageBin
[info] welcome to sbt 1.3.13 (Oracle Corporation Java 1.8.0_262)
[info] loading settings for project workspace-build from build.sbt,plugins.sbt ...
[info] loading project definition from /workspace/project
java.util.concurrent.RejectedExecutionException: Task scala.concurrent.impl.CallbackRunnable@1f9fef5e rejected from java.util.concurrent.ThreadPoolExecutor@4c3f3871[Shutting down, pool size = 2, active threads = 2, queued tasks = 0, completed tasks = 1857]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)
at scala.concurrent.impl.ExecutionContextImpl$$anon$4.execute(ExecutionContextImpl.scala:138)
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:72)
at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:288)
at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1$adapted(Promise.scala:288)
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:288)
at scala.concurrent.Promise.complete(Promise.scala:53)
at scala.concurrent.Promise.complete$(Promise.scala:52)
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:187)
at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
java.util.concurrent.RejectedExecutionException: Task scala.concurrent.impl.CallbackRunnable@337da496 rejected from java.util.concurrent.ThreadPoolExecutor@4c3f3871[Shutting down, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 1858]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)
at scala.concurrent.impl.ExecutionContextImpl$$anon$4.execute(ExecutionContextImpl.scala:138)
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:72)
at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:288)
at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1$adapted(Promise.scala:288)
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:288)
at scala.concurrent.Promise.complete(Promise.scala:53)
at scala.concurrent.Promise.complete$(Promise.scala:52)
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:187)
at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[error] java.util.concurrent.ExecutionException: Boxed Error
[error] at scala.concurrent.impl.Promise$.resolver(Promise.scala:87)
[error] at scala.concurrent.impl.Promise$.scala$concurrent$impl$Promise$$resolveTry(Promise.scala:79)
[error] at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:284)
[error] at scala.concurrent.Promise.complete(Promise.scala:53)
[error] at scala.concurrent.Promise.complete$(Promise.scala:52)
[error] at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:187)
[error] at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
[error] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] Caused by: java.lang.Error: java.io.IOException: No such file or directory
[error] at sun.nio.ch.FileKey.create(FileKey.java:46)
[error] at sun.nio.ch.SharedFileLockTable.<init>(FileLockTable.java:120)
[error] at sun.nio.ch.FileLockTable.newSharedFileLockTable(FileLockTable.java:47)
[error] at sun.nio.ch.FileChannelImpl.fileLockTable(FileChannelImpl.java:1039)
[error] at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1106)
[error] at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
[error] at lmcoursier.internal.shaded.coursier.cache.CacheLocks$.loop$1(CacheLocks.scala:55)
[error] at lmcoursier.internal.shaded.coursier.cache.CacheLocks$.withLockOr(CacheLocks.scala:84)
[error] at lmcoursier.internal.shaded.coursier.cache.FileCache.$anonfun$download$32(FileCache.scala:508)
[error] at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)
[error] at scala.util.Success.$anonfun$map$1(Try.scala:255)
[error] at scala.util.Success.map(Try.scala:213)
[error] at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)
[error] at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)
[error] at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
[error] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] Caused by: java.io.IOException: No such file or directory
[error] at sun.nio.ch.FileKey.init(Native Method)
[error] at sun.nio.ch.FileKey.create(FileKey.java:44)
[error] at sun.nio.ch.SharedFileLockTable.<init>(FileLockTable.java:120)
[error] at sun.nio.ch.FileLockTable.newSharedFileLockTable(FileLockTable.java:47)
[error] at sun.nio.ch.FileChannelImpl.fileLockTable(FileChannelImpl.java:1039)
[error] at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1106)
[error] at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
[error] at lmcoursier.internal.shaded.coursier.cache.CacheLocks$.loop$1(CacheLocks.scala:55)
[error] at lmcoursier.internal.shaded.coursier.cache.CacheLocks$.withLockOr(CacheLocks.scala:84)
[error] at lmcoursier.internal.shaded.coursier.cache.FileCache.$anonfun$download$32(FileCache.scala:508)
[error] at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)
[error] at scala.util.Success.$anonfun$map$1(Try.scala:255)
[error] at scala.util.Success.map(Try.scala:213)
[error] at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)
[error] at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)
[error] at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)
[error] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] (update) java.util.concurrent.ExecutionException: Boxed Error
このエラーは./docker-compose.ymlを以下のようにSBTの環境変数の設定部分を削除することで回避できますが、エラーの発生原因は不明です。
environment:
- http_proxy
- https_proxy
- # gitlab-ci のキャッシュ設定に合わせている
- - >-
- SBT_OPTS=
- -Dsbt.global.base=/project/sbt-cache/sbtboot
- -Dsbt.boot.directory=/project/sbt-cache/boot
- -Dsbt.coursier.home=/project/sbt-cache/coursierRPM パッケージのバージョンフォーマット不正
上記の問題を解消しても以下のエラーが発生してパッケージ作成に失敗します。
[error] error: line 2: Illegal char '-' in: Version: 2022.3.0+3-20d0812b
[error] Building target platforms: noarch-???-Linux
[error] Building for target noarch-???-Linux
rpmパッケージのバージョンはsbt-dynverプラグインでgitのタグから自動で付与されるようになっているので、タグをつけずにRPMパッケージを作成しようとするとエラーが発生するようです。
タグは小文字のvから始まる必要があります。詳細はsbt-dynverのドキュメントのTag Requirementsを参照してください。
以下のようにgit tagコマンドでタグを付与することでパッケージの作成に成功するようになりました。
git tag v2022.3.1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels