How to press enter in Dockerfile - docker

I have a Dockerfile with this line:
RUN yes n | /opt/TWS/ibgateway-latest-standalone-linux-x64.sh
when I build the container and get to this line, the installation is expecting I press enter.
I want to know hoe I can send Enter on this line in Dockerfile without using --yes or yes or -y.
I have looked everywhere and nothing suggested has worked, I think it requires Enter like the actual key ENTER or Return on Macs

I figured out by searching for about an hour, it is by using yes ''. as shown below:
RUN yes '' | /opt/TWS/ibgateway-latest-standalone-linux-x64.sh

Related

running pycharm interpreter using nvidia-docker2

Im working on Ubuntu 20. I've installed docker, nvidia-docker2. On Pycharm, I've followed jetbrain guide, but in the advanced steps it isn't consistent with what I see in my setup. I use PyCharm Proffesional 2022.2.
In this step:
in the run options I put additionally --runtime=nvidia and --gpus=all.
Step 4 finishes as same as in the guide (almost, but it seems that it doesn't bother anything so on that later) and on step 5 I put manually the path to the interpreter in the virtual environment I've created using the Dockerfile.
In that way I am able to run the command of nvidia-smi and see correctly the GPU, but I don't see any packages I've installed during the Dockerfile build.
There is another option to connect the interpreter a little bit differently in which I do see the packages, but I can't run the nvidia-smi command and the torch.cuda.is_availble return False.
The way is instead of doing this as in the guide:
I press on the little down arrow in left of the Add Interpreter button and then click on Show all:
After which I can press the + button :
works, so it might be PyCharm "Python Console" issue.
and then I can choose Docker:
which will result in the difference mentioned above in functionality and also in the path dispalyed (the first one is the first remote interpreter top to bottom direction and the second is the second correspondingly):
Here of course the effect of the first and the second correspondingly:
Here is the results of the interpreter run with the first method connected interpreter:
and here is the second:
Of the following code:
Here is the Dockerfile file if you want to take a look:
Anyone configured it correctly and can help ?
Thank you in advance.
P.S: if I run the docker from services and enter the terminal the command nvidia-smi works fine and also the import of torch and the command torch.cuda.is_available return True.
P.S.2:
The thing that has worked for me for now is to change the Dockerfile to install directly torch with pip without create conda environement.
Then I set the path to the python2.7 and I can run the code, but not debug it.
for run the result is as expected (the packages list as was shown before is still empty, but it works, I guess somehow my IDE cannot access the packages list of the remote interpreter in that case, I dont know why):
But the debugger outputs the following error:
Any suggestions for the debugger issue also will be welcome, although it is a different issue.
Please update to 2022.2.1 as it looks like a known regression that has been fixed.
Let me know if it still does not work well.

Trouble with HomeBrew

I'm having trouble searching for the list of all casks when I run the command for it.
brew search --casks
I get the error you see in the picture.
Error: Invalid usage: This command requires at least 1 text or regex argument.
If anyone has had similar problems please share.
You need at least one string to search for.
$ brew search --casks fire
==> Casks
firefly firealpaca firestorm
firefox-beta firebase-admin firestormos
firefox-developer-edition firebird-emu fireworks
firefox-esr firecamp multifirefox
firefox-nightly firefox ✔ spitfire-audio
If you really need to find all available casks, you can use an empty arg like this:
brew search --casks ''

Secret username and password on Jenkins

I am having troubles to manage secret password on Jenkins. I want that the password is not showed on the log but i tried in two ways without success:
First attempt
I tried setting up with user and pwd with Global credentials (unrestricted) like this :
and i executed :
docker run -u root -v $(pwd)/:/usr/src/app deploy npm run application -- --params.login.user=$USER --params.login.password=$PWD
but i can see in the log that the user is wrote correctly but the pwd is being written like its path:
e2e#2.2.1 e2: `protractor dist/out-tsc/e2e/cucumberconfig.js "--params.login.user=user" "--**params.login.password=/var/lib/jenkins/workspace/application/app/e2e_test**"
And in my automatic test is also by entering the full path instead of the value of the variable.
Second attempt
I tried using a secret text like this:
docker run -u root -v $(pwd)/:/usr/src/app deploy npm run application -- --params.login.user=$USER --params.login.password=$PASS
But on the console log is being displayed the password as it is.
Someone can help me?
Thank you in advance.
But on the console log is being displayed the password as it is.
is it mean in clear text?
If so - use mask password plugin to solve the issue.
i used :
set +x
docker run -u root -v $(pwd)/:/usr/src/app deploy npm run application -- -params.login.user=$USER --params.login.password=$PWD
set -x
and that worked.

Remove a certain amount of files with a sequence of characters in a directory

I stopped a process to troubleshoot something. Now, I would like to start the process where it left off in CentOS 6.4.
This script I stopped runs a perl script in a loop to process all of the files in /dev/shm/split/. These files were split into many parts from a larger file. An example of how they are named are as follows:
file.txt.aa
file.txt.ab
file.txt.ac
...and so on.
I have identified that the script left off at file.txt.fy. So, I would like to remove all of the files in /dev/shm/split/ that are from file.txt.aa through file.txt.fy.
I tried to create a whitelist for the rm command by doing:
ls /dev/shm/split/ > whitelist
cat whitelist | egrep -v 'file.txt.[aa-fz]' | tee whitelist.tmp
This did not do what I had intended.
Please help me! Thank you!
The problem with your command is that you cannot match two characters with the square bracket pattern in bash. You should use something like that instead:
ls file.txt.[a-e]? file.txt.f[a-y]
Basically decompose your range into two ranges, the first will match .aa to .ez, and the second .fa to .fy (included).
Note that I have used the ls command here. I always find it a good idea to first echo or ls the commands/files you're going to run when the operations you do are potentially destructive. When you're sure it produces the right output, go on and use rm instead of ls.

gedit cannot open shoes2.run

I've just downloaded shoes but can't get them out the box.
double clicked on shoes2.run in ubuntu intrepid and gedit opened with the following message:
Could not open the file /home/mark/Marks files/2…ng/Programming/shoes2.run using the Unicode (UTF-8) character coding.
Please check that you are not trying to open a binary file.
Select a different character coding from the menu and try again.
It offered a dropdown with 2 options and a retry button:
Current locale (UTF-8)
Western (ISO-8859-15)
Neither of them are recognized.
How do i get it running?
m-
I had this same problem. try sudo chmoding the file :
sudo chmod 777 shoes2.run
then try running it as a script
./shoes2.run
that should work.
I am still trying to get shoes2 in my path so I can run it easily like the previous version (which I got through apt-get) right now I have to run it as a script each time I use it.
Good Luck!

Resources