I'm getting this error when I run Julia in Docker:
julia.core.JuliaError: Exception 'SystemError: opening file "/root/.julia/logs/manifest_usage.toml": Read-only file system' occurred while calling julia code:
I tried setting JULIA_HISTORY, but that doesn't seem to be respected.
It looks like you actually probably want to move your whole .julia folder, assuming that the whole /root/ directory is probably going to give you filesystem permission errors unless you always run as root within your docker image.
You can control the location of the .julia directory at first install with the JULIA_DEPOT_PATH environment variable, which is described in a bit more detail in this answer: permissions for installing packages on julia in slurm cluster, though depending on how you are installing Julia, you may be able to more easily sidestep the whole issue by just not using sudo when installing Julia.
Related
I received a .tar docker file from a friend that told me that it should contain all dependences for a program that I've been struggling to get working and that all I need to do is "run" the Docker file. The Docker file is of a .tar format and is around 3.1 GB. The program this file was setup to run is call opensimrt. The GitHub link to the file is as follows:
https://github.com/mitkof6/OpenSimRT
The google drive link to the Docker file is as follows:
https://drive.google.com/file/d/1M-5RnnBKGzaoSB4MCktzsceU4tWCCr3j/view?usp=sharing
This program has many dependencies, some big ones to note is that it runs off ubuntu 18.04 and Opensim 4.1.
I'm not a computer scientist by any means, so I've been struggling to even learn to do docker basics like load and run a image. However, I desperately need this program to work. If you have any steps or advice on how to run this .tar I'd greatly appreciate it. Alternatively if you are able to find a way to get opensimrt up and running and can post those steps I'd be more than happy with that solution as well.
I've tried the commands "docker run" and "docker load" followed by their respective tags, file paths, args..etc. However, even when I fix various issues I always get stuck with a missing var/lib/docker/tmp/docker-import-....(random numbers) file. The numbers change every so often when trying to solve the issue, but eventually I always end up getting some variation of this error: Error response from daemon: open /var/lib/docker/tmp/docker-import-3640220538/bin/json: no such file or directory.
ps: I have extracted the .tar already and there is no install guide/instruction, .exe, install application. As a result I'm not sure how to get the program installed and running.
I am trying to open jupyter-notebook (Anaconda 3 distribution) from the terminal, but whether I call jupyter, jupyter-notebook, or jupyter notebook, I get an error indicating that what was actually called was C:\ProgramData\Anaconda3\Scripts\jupyter-notebook-script.py.
I have C:\ProgramData\Anaconda3\Scripts and C:\ProgramData\Anaconda3 added to PATH, so I can see that it is looking in the right directory, but matches with the wrong file.
Is the solution to add only the .exe's I want to PATH, rather than the folder? Or is there a way to add a folder to path such that only .exe's will be noticed. Or perhaps there is some way of setting the priority when the given command matches multiple entries in PATH?
Edit:
I got what I need working by reinstalling Anaconda with the 'add to PATH' option selected. However, I am still interested in WHY this issue was occurring, and posting an answer to that may be helpful for future viewers of this page.
Are you running jupyter from the Anaconda Prompt?
On Windows it's bad practice to add the variables to PATH manually to use Anaconda. You lose the entire point of Anaconda managing these things itself.
If all you want is to launch an jupyter notebook using your anaconda distribution just open the anaconda prompt (comes with the installation), make sure the jupyter package is installed and run jupyter notebook.
If that doesn't work, might be that the conda environment's path got messed up during jupyter's installation so pip uninstall jupyter then pip install jupyter from within the Anaconda Prompt.
Lastly, if you haven't already, think about using conda envionments so that you really will never have to mess with your PATH anymore.
I was able to solve this issue by reinstalling Anaconda with 'Add to PATH' selected, rather than adding to path manually.
I downloaded Docker for Mac since it was a prerequisite for Hyperledger Fabric (also listed here).
Now, I downloaded platform specific binaries listed here.
The instructions said:
If you are using Docker for Mac, you will need
to use a location under /Users, /Volumes, /private, or /tmp. To use a
different location, please consult the Docker documentation for file
sharing.
So,I used the following directory: /Users/user_name/Documents/Hyperledger\ Fabric/
I followed the same commands as listed on the site.
However, I was not able to add the line below to the ~/.bash_profile.
export PATH=/Users/user_name/Documents/Hyperledger\ Fabric/bin:$PATH
If I added the above line and ran the bash_profile, it gave an error and after that commands like ls, open were giving error not found.
It seems that there is a problem with the file location since I
installed Docker for Mac instead of Docker toolbox.
The problem is that your directory name contains a space. One way to avoid this problem is to specify a directory name that has no spaces. This would be the ideal approach since once you introduce a space in the PATH variable it would need to be quoted where used subsequently.
Alternately, you could set the path as:
export PATH="/Users/user_name/Documents/Hyperledger Fabric/bin":$PATH
However, as noted this has drawbacks.
I have a test which tries to start an embedded mysql.
It tries to write a socket file to Files.createTempFile(null, ".sock") which returns with the following error:
mysql start failed with error: [ERROR] The socket file path is too long (> 103): /private/var/tmp/_bazel_user/1c8ed8d84f6cb79483aa3cc4da758c86/bazel-sandbox/2478112867584790357/execroot/some_workspace/_tmp/dfebe48cda4dfdc8739653efedfa4933/394798020705754292.sock.
I worked around it by re-pointing java temp dir to /tmp using jvm_flags but this doesn't work when I try to use sandboxing since I guess the test isn't allowed to write there.
I've tried setting a symbolic link from the java code (like so Files.createSymbolicLink(Paths.get("/tmp/foo"),Paths.get(System.getProperty("java.io.tmpdir"))) but this doesn't seem to help.
I've also tried setting the output_base but that didn't help either.
Would really appreciate pointers and tips since I currently can't run my tests under sandbox and so can't parallelize them.
I think your approach of re-pointing Java to /tmp should work. The macOS sandbox always allows writing to a number of directories and /tmp and /private/tmp are included in this set. I tried to reproduce the failure with a genrule: genrule(name = "write_to_tmp", outs = ["out.txt"], cmd = "touch /tmp/something.sock && touch $#"), which works fine and creates the file /tmp/something.sock.
I think in general using /tmp should work fine, although it does seem to be a bit unusual on macOS. $TMPDIR is set to a user-specific folder with a randomized name underneath /var/folders by the OS and it seems to be generally encouraged to use that instead of /tmp. But if you know what you're doing, I don't see a real problem.
Note that we don't have tmpfs or similar mechanisms available on macOS, so we can't automatically guarantee that your usage of writable folders like /tmp by actions is hermetic, won't leak state between runs or that file names won't conflict. Make sure to generate file names in a secure way via mkstemp or similar.
In a bazel test, you can use the TEST_TMPDIR environment variable for a test-private writeable area.
See https://docs.bazel.build/versions/master/test-encyclopedia.html
I'm trying to make an Teamspeak image running on Alpine linux but am honest not sure why docker says
./ts3server: not found
This is the Github page with the Dockerfile code:
https://github.com/signofkoen/docker-teamspeak/blob/snapshot/Dockerfile
Container log:
/opt/teamspeak3-server_linux_amd64/ts3server_minimal_runscript.sh: line 8: ./ts3server: not found
Anyone know's what am doing wrong? I think a did something wrong with the extracting part but am not sure.
The ts3server binary in your image looks like it was built against glibc, but it is unable to find the appropriate runtime loader on the filesystem.
You can see this by running ldd /opt/teamspeak/ts3server, which reports:
Error loading shared library ld-linux-x86-64.so.2:
No such file or directory (needed by ts3server)
This is the direct cause of your error.
I see that you're starting with the skardoska/alpine-glibc image, which sounds like maybe it was designed to provide a standard glibc environment to Alpine linux, but the image does not appear to have been constructed in a way that is compatible with your binaries. Looking at the description at https://hub.docker.com/r/skardoska/alpine-glibc/, it appears this may be a known problem, because the description says, "Waiting for https://github.com/andyshinn/alpine-pkg-glibc/issues/1".
You may be better off just starting with a glibc based distribution like Fedora or Ubuntu.