DockerfileFROM alpine:latest
ENV ROOT_DIRECTORY=/caddyserver
ENV CONF_DIRECTORY=/caddyserver/cfg
ENV WWW_DIRECTORY=/caddyserver/www
ENV LOGS_DIRECTORY=/caddyserver/logs
#ARG Plugins='http.cache,net,http.git,http.ipfilter'
VOLUME $CONF_DIRECTORY $WWW_DIRECTORY $LOGS_DIRECTORY
RUN apk add --no-cache openssh-client git
ENV Email=''
ENV CPU=''
EXPOSE 80 443 2015
CMD $ROOT_DIRECTORY/caddy -conf $ROOT_DIRECTORY/cfg/Caddyfile -log $ROOT_DIRECTORY/logs/caddy.log -cpu $CPU -email $EMAIL -agree
Описал такой dockerfile, при попытке запуска контейнер падает
docker create \
--name=caddy \
-v /opt/Docker/caddy/cfg:/caddyserver/cfg \
-v /opt/Docker/caddy/www:/caddyserver/www \
-v /opt/Docker/caddy/logs:/caddyserver/logs \
-e EMAIL=mail@mail -e CPU=2 \
-p 80:80 -p 443:443 -p 2015:2015 \
caddy
В логах пишет что не может найти конфигурационный файл в папке cfg. На сколько я понимаю, это происходит из за того, что я монтирую в раздел cfg папку с хоста и она пустая. В момент создания докер контейнера, при команде COPY я копирую структуру и там содержится базовая конфигурация. Как сделать так, чтобы при начальном запуске эта конфигурация была видна с хоста?
Ну т.е. был пример с gitlab, при первом запуске контейнера он в нужные папки кладёт уже данные, логи с контейнера(В моём примере лог пишется и виден с хоста), а при последующих запусках уже монтирует и использует их.