Запуск узловых вещей в docker (Django, Angular)
У меня есть проект frontend(angular) внутри проекта backend(django) с такой структурой [структура][1]
compose.yml
services:
db:
image: postgres:13-alpine
container_name: db
restart: always
env_file: .env.dev
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
- POSTGRES_USER=stage
- POSTGRES_PASSWORD=stage
- POSTGRES_DB=stage
volumes:
- postgres_data:/var/lib/postgresql/data/
web:
build:
context: .
dockerfile: Dockerfile
image: web
container_name: web
env_file: .env.dev
environment:
- POSTGRES_USER=stage
- POSTGRES_PASSWORD=stage
- POSTGRES_DB=stage
restart: always
volumes:
- ./:/leostudy
links:
- db
depends_on:
- db
ports:
- "8000:8000"
command: "python manage.py runserver 0.0.0.0:8000"
redis:
image: "redis:alpine"
expose:
- 6379
celery:
restart: always
build:
context: .
command: celery -A students worker -l info
env_file:
- ./.env.dev
volumes:
- ./:/leostudy/
depends_on:
- db
- redis
- web
volumes:
postgres_data:
Dockerfile
# set work directory
WORKDIR /proj
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apk update \
&& apk add postgresql-dev gcc python3-dev musl-dev libffi-dev openssl-dev
RUN apk --update add \
build-base \
jpeg-dev \
zlib-dev
# install dependencies
COPY ./requirements.txt .
RUN pip install --upgrade pip \
&& pip install -U pip setuptools \
&& pip install -r requirements.txt
# copy project
COPY . .
# run entrypoint.sh
RUN ["chmod", "+x", "./entrypoint.sh"]
ENTRYPOINT ["./entrypoint.sh"]
Итак, мне нужно как-то собрать статику с помощью gulp внутри контейнера следующим образом:
WORKDIR /proj/frontend
RUN npm install
RUN gulp build
Какой лучший способ сделать это? Буду рад, если вы напишите какой-нибудь код. help [1]: https://i.stack.imgur.com/390PR.png