Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to resolve ivy dependencies:/coursier_cache/.structure.lock (Permission denied) #140

Open
mirale386 opened this issue Feb 20, 2021 · 4 comments

Comments

@mirale386
Copy link

mirale386 commented Feb 20, 2021

local install follow the Local Installation using Docker - Linux/Mac/Windows

java -version :
image

image

how to slove this problem : ammonite.util.CompilationError: Failed to resolve ivy dependencies:/coursier_cache/.structure.lock (Permission denied)?

image

detail:

Compiling (synthetic)/ammonite/predef/replBridge.sc
Compiling (synthetic)/ammonite/predef/kernelBridge.sc
Compiling (synthetic)/ammonite/predef/defaultPredef.sc
ERROR Execute exception in user code (Failed to resolve ivy dependencies:/coursier_cache/.structure.lock (Permission denied))
ammonite.util.CompilationError: Failed to resolve ivy dependencies:/coursier_cache/.structure.lock (Permission denied)
  ammonite.interp.Interpreter$$anon$1$load$.module(Interpreter.scala:716)
  ammonite.$sess.cmd0$Helper.<init>(cmd0.sc:2)
  ammonite.$sess.cmd0$.<init>(cmd0.sc:7)
  ammonite.$sess.cmd0$.<clinit>(cmd0.sc)
  ammonite.$sess.cmd0.$main(cmd0.sc)
  sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  java.lang.reflect.Method.invoke(Method.java:498)
  ammonite.runtime.Evaluator$$anon$1.$anonfun$evalMain$1(Evaluator.scala:108)
  ammonite.util.Util$.withContextClassloader(Util.scala:24)
  ammonite.runtime.Evaluator$$anon$1.evalMain(Evaluator.scala:90)
  ammonite.runtime.Evaluator$$anon$1.$anonfun$processLine$2(Evaluator.scala:127)
  ammonite.util.Catching.map(Res.scala:117)
  ammonite.runtime.Evaluator$$anon$1.$anonfun$processLine$1(Evaluator.scala:121)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.runtime.Evaluator$$anon$1.processLine(Evaluator.scala:120)
  ammonite.interp.Interpreter.$anonfun$evaluateLine$4(Interpreter.scala:296)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$evaluateLine$2(Interpreter.scala:282)
  ammonite.util.Catching.flatMap(Res.scala:115)
  ammonite.interp.Interpreter.evaluateLine(Interpreter.scala:281)
  ammonite.interp.Interpreter.$anonfun$processLine$6(Interpreter.scala:268)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$processLine$4(Interpreter.scala:252)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$processLine$2(Interpreter.scala:245)
  ammonite.util.Catching.flatMap(Res.scala:115)
  ammonite.interp.Interpreter.processLine(Interpreter.scala:244)
  almond.Execute.$anonfun$ammResult$9(Execute.scala:227)
  almond.internals.CaptureImpl.$anonfun$apply$2(CaptureImpl.scala:53)
  scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
  scala.Console$.withErr(Console.scala:196)
  almond.internals.CaptureImpl.$anonfun$apply$1(CaptureImpl.scala:45)
  scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
  scala.Console$.withOut(Console.scala:167)
  almond.internals.CaptureImpl.apply(CaptureImpl.scala:45)
  almond.Execute.capturingOutput(Execute.scala:165)
  almond.Execute.$anonfun$ammResult$8(Execute.scala:223)
  almond.Execute.$anonfun$withClientStdin$1(Execute.scala:145)
  scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
  scala.Console$.withIn(Console.scala:230)
  almond.Execute.withClientStdin(Execute.scala:141)
  almond.Execute.$anonfun$ammResult$7(Execute.scala:223)
  almond.Execute.withInputManager(Execute.scala:133)
  almond.Execute.$anonfun$ammResult$6(Execute.scala:222)
  ammonite.repl.Signaller.apply(Signaller.scala:28)
  almond.Execute.interruptible(Execute.scala:182)
  almond.Execute.$anonfun$ammResult$5(Execute.scala:221)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  almond.Execute.$anonfun$ammResult$1(Execute.scala:212)
  almond.Execute.withOutputHandler(Execute.scala:156)
  almond.Execute.ammResult(Execute.scala:212)
  almond.Execute.apply(Execute.scala:296)
  almond.ScalaInterpreter.execute(ScalaInterpreter.scala:120)
  almond.interpreter.InterpreterToIOInterpreter.$anonfun$execute$2(InterpreterToIOInterpreter.scala:69)
  cats.effect.internals.IORunLoop$.cats$effect$internals$IORunLoop$$loop(IORunLoop.scala:87)
  cats.effect.internals.IORunLoop$RestartCallback.signal(IORunLoop.scala:355)
  cats.effect.internals.IORunLoop$RestartCallback.apply(IORunLoop.scala:376)
  cats.effect.internals.IORunLoop$RestartCallback.apply(IORunLoop.scala:316)
  cats.effect.internals.IOShift$Tick.run(IOShift.scala:36)
  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  java.lang.Thread.run(Thread.java:748)
@zhizhang77
Copy link

It seems the dockerfile is somewhat buggy. Directory "/coursier_cache" is owned by user "root", so the active user "bootcamp" can't write into it properly. A quickfix as below works for me:

FROM ucbbar/chisel-bootcamp:latest

RUN cp -r /coursier_cache /home/bootcamp/coursier_cache
ENV COURSIER_CACHE=/home/bootcamp/coursier_cache

USER bootcamp
WORKDIR /chisel-bootcamp

EXPOSE 8888
CMD jupyter notebook --no-browser --ip 0.0.0.0 --port 8888

Save the dockerfile and build it. Then you can run the new image just as the original one.

docker build -t bootcamp_fix:0.01 .
docker run -it --rm -p 8888:8888 bootcamp_fix:0.01

@JellyDa
Copy link

JellyDa commented Nov 11, 2021

It seems the dockerfile is somewhat buggy. Directory "/coursier_cache" is owned by user "root", so the active user "bootcamp" can't write into it properly. A quickfix as below works for me:

FROM ucbbar/chisel-bootcamp:latest

RUN cp -r /coursier_cache /home/bootcamp/coursier_cache
ENV COURSIER_CACHE=/home/bootcamp/coursier_cache

USER bootcamp
WORKDIR /chisel-bootcamp

EXPOSE 8888
CMD jupyter notebook --no-browser --ip 0.0.0.0 --port 8888

Save the dockerfile and build it. Then you can run the new image just as the original one.

docker build -t bootcamp_fix:0.01 .
docker run -it --rm -p 8888:8888 bootcamp_fix:0.01

It's work for me ,thanks

@sifive-benjamin-morse
Copy link

If you get this error from an already running docker you can do this (with a machine named cool_knuth):

docker exec --user root -it cool_knuth chown -R bootcamp:bootcamp /coursier_cache

@TDppy
Copy link

TDppy commented Sep 8, 2023

If you get this error from an already running docker you can do this (with a machine named cool_knuth):

docker exec --user root -it cool_knuth chown -R bootcamp:bootcamp /coursier_cache

Your solution really work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants