This the docker image I want to modify.
My objective is to include this in the container in other words increase timeout
# set timeout to 10 seconds
$ vdb-config -s /http/timeout/read=10000
So Steps what I have done is
- docker pull biomystery/sra-tools-pigz:2.10.9
- docker run -it -d --name kcm_sra_tool d97f2ab7e64f
- docker exec -it be7b9d647cd0 /bin/sh
Next I found the location of the configuration file I wanted to edit
/usr/local/ncbi/sra-tools/bin/vdb-config
Here vdb-config is the one which need to be modified to increase the timeout.
If i grep the timeout inside the vdb-config file I see this
cat vdb-config | grep "timeout"
/libs/kns/connect/timeout
/http/timeout/read
/http/timeout/write
/libs/kns/connect/timeout/read
/libs/kns/connect/timeout/write
%s - no timeout specified - call will succeed
%s - timeout specified - call will fail
f_recv_timeout: %u ms
ssl->f_recv(_timeout)
handshake timeout
update timeout value to %d millisecs
systimeout.c
vdb_mbedtls_ssl_conf_read_timeout
vdb_mbedtls_ssl_conf_handshake_timeout
So since I'm not sure if I would edit it inside the container if that would work.
Therefore I tried to copy it into local.
docker cp 553293a5a33c:/usr/local/ncbi/sra-tools/bin/vdb-config vdb-config
After copy I see something like this
lrwxrwxrwx. 1 forest_users 12 Dec 18 2020 vdb-config -> vdb-config.2
When I tried to see the file content cat vdb-config cat: vdb-config: No such file or directory
So how do I make changes in the vdb-config file either inside the container or locally and put it back again and build a modified docker image.
Or in case my approach is incorrect.
Do i need to build a fresh docker image ?
Any suggestion or help would be really appreciated
Can't you just do an interactive session
docker run -it your/image:version bash
, then do the changes there (vdb-config has a sort of GUI), then exit, get the sha withdocker ps
and commit that change usingdocker commit <sha> your/image:updated_version
? I usually don't like GUIs but sratools are such a mess, here it might be the easiest option.vdb-config has a sort of GUI this i tried but Im not sure where is the option for timeout in that GUI version.
docker commit <sha> your/image:updated_version?
regarding this I have never done this. So im unaware of the final stepsI followed as you suggested