Обычно я хочу запустить Контейнер, который берет файл. c в моем каталоге, компилирует его, запускает и выходит из контейнера.
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y gcc
WORKDIR /home/
COPY test.c /home/
RUN gcc start.c
CMD ["./a.out"]
Это был мой предыдущий Dockerfile, и он работал при выполнении с docker run -it --rm <image name>
. Проблема в том, что когда я меняю файл c, мне приходится создавать новый образ и запускать его снова, а это занимает много времени. Мой текущий подход таков:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y gcc
WORKDIR /home
CMD ["gcc start.c"]
CMD ["./a.out"]
Я запускаю это с помощью docker run -it --rm -v ~/Desktop/docker_c:/home <image-name>
, но он выдает мне эту ошибку:
starting container process caused "exec: \"./a.out\": stat ./a.out: no such file or directory": unknown.
Флаг -v
для монтирования общей папки находится в команду run, поэтому не следует ли контейнеру монтировать папку при каждом запуске?
Спасибо за вашу помощь!