Is there any way to pass custom Dockerfile to `aicrowd-repo2docker`?

#1

I faces some problems with building a container for submission using custom environment.yml.
After going over the debug output I see that I could easily fix it if I could change Dockerfile from which image if build from.
In this case in particular it was lacking gcc installed:

  gcc -pthread -B /srv/conda/envs/notebook/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=563 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/srv/conda/envs/notebook/include/python3.6m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o
  unable to execute 'gcc': No such file or directory
  error: command 'gcc' failed with exit status 1

So my question is: is there any way to replace Dockerfile used in build pipeline at least locally, so I could exactly suggest organizers fixes for their Dockerfile?

#2

@rauf_kurbanov: You can indeed drop in a Dockerfile at the root, and aicrowd-repo2docker will use it. You will just have to ensure that the default working directory is /home/aicrowd, and the entrypoint of the code is at /home/aicrowd/run.sh, you will also have to ensure the necessary cuda etc packages are available.

Alternatively, to install gcc, you can add a line to apt.txt as done here : https://github.com/AIcrowd/neurips2019_disentanglement_challenge_starter_kit/blob/master/apt.txt#L2

1 Like