Я хочу создать пустой файл БД, используя touch
в Dockerfile
или docker-compose.yml
, и разместить его между контейнером и хостом. Я могу создать его вручную в этом контейнере, выполнив следующую процедуру: хорошо:
docker exec -it <container-name> bash
# touch /app/model/modbus.db
Принимая во внимание, что когда я использую следующую процедуру, он выдает exited with code 0
и останавливается:
version: '3'
services:
collector:
build: .
image: collector:2.0.0
network_mode: "host"
container_name: collector
restart: unless-stopped
command: bash -c "touch /app/model/modbus.db" # Note
# command: bash /app/bashes/create_an_empty_db.sh
volumes:
- "./model/modbus.db:/app/model/modbus.db:rw"
tty: true
Кроме того, я попытался выполнить задачу Dockerfile, но безуспешно:
FROM python:3.6-slim
ENV PYTHONUNBUFFERED 1
RUN mkdir /app
WORKDIR /
ADD . /app
RUN touch /app/model/modbus.db # Note
CMD python app
[ Примечание ]:
Без command: bash -c "touch /app/model/modbus.db"
в docker-compose.yml, который вызывает exited with code 0
ошибки; будет создан каталог с именем modbus.db
вместо файла из-за следующего раздела:
volumes:
- "./model/modbus.db:/app/model/modbus.db:rw"
[UPDATE]
TL; DR:
Как отправить новый файл из контейнера на хост, который не существует на хосте? (что сделано внутри контейнера, а не в хосте)