У меня есть проект со структурой каталогов следующим образом:
docker-compose.yml
project1/
--Dockerfile
--docker-compose-entry.sh
project2/
--Dockerfile
--docker-compose-entry.sh
project3/
--Dockerfile
--docker-compose-entry.sh
Мои docker-compose-entry.sh
файлы создают и записывают некоторые файлы в контейнере по мере их раскрутки.Но это делает еще одну странную вещь.Когда они записывают файлы в свои контейнеры, они также записывают файлы в исходные каталоги в моем локальном каталоге.
Я хочу, чтобы файлы записывались в контейнеры, когда они запускаются и остаются в контейнере, не затрагивая мои действительные каталоги.,Созданные файлы должны быть уничтожены, так как контейнер уничтожается.
У кого-нибудь есть предложения, как это сделать?Любая идея будет высоко оценена.
ОБНОВЛЕНИЕ Ниже приводится содержание моих файлов в соответствии с просьбой в комментариях:
# docker-compose.yml
version: '2'
services:
project1:
restart: always
build: ./project1
image: project1
command: gunicorn project1.wsgi -b 0.0.0.0:8000
volumes:
- ./project1:/project1
- ./common:/project1/common
expose:
- "8000"
depends_on:
- db
project2:
restart: always
build: ./project2
image: project2
command: gunicorn project2.wsgi -b 0.0.0.0:8000
volumes:
- ./project2:/project2
- ./common:/project2/common
expose:
- "8000"
depends_on:
- db
project3:
restart: always
build: ./project3
image: project3
command: gunicorn project3.wsgi -b 0.0.0.0:8000
volumes:
- ./project3:/project3
- ./common:/project3/common
expose:
- "8000"
depends_on:
- db
db:
image: postgres
restart: always
ports:
- "5432:5432"
volumes:
- data:/var/lib/postgresql/data
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: sacrina
volumes:
data:
Вот пример моего Dockerfile из проекта1.
#Dockerfile
FROM wildfish/django:node-latest
RUN mkdir /project1
WORKDIR /project1
ADD . /project1
ADD requirements.txt /project1/
ADD ./common/.bowerrc /project1/
ADD ./common/bower.json /project1/
ADD ./common/package.json /project1/
ADD ./common/gulpfile.js /project1/
ADD ./config/ /project1/
RUN pip install -r /project1/requirements.txt
RUN npm install --global bower gulp-cli
COPY ./docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entry-point.sh
ENTRYPOINT ["docker-entry-point.sh"]
Вот пример моего docker-entry-point.sh
# docker-entry-point.sh
#!/bin/sh
npm install
bower install
gulp
python manage.py collectstatic --no-input
gunicorn project1.wsgi -b 0.0.0.0:8000