Bir proje de backend ve frontendi aynı ‘docker-compose.yml’ dosyası ile çalıştırıyorum. daha sonra tarayıcıyı açıp uygulamayı inceleyebiliyorum. backend üzerinde yaptığım değişiklikler aynı anda uygulamayı etkilerken (tarayıcıda ya da terminalde etkisini hemen görebiliyorum) frontenddeki değişikliklerin etkilemesi için sistemi kapatıp yeniden başlatmam gerekiyor. Docker konusunda biraz bilinçsiz kullanıcı gibi hareket ediyorum, sağda solda gördüklerimi birleştirerek bir şeyler yapmaya çalışıyorum. Bu durumu yorumlayamadım. sebebi ne olabilir?
klasör yapısı docker dosyaları şöyle:
- [project]
- [backend]
- Dockerfile
- [frontend]
- Dockerfile
- docker-compose.yml
- [backend]
version: '3.7'
services:
backend:
build: ./backend
container_name: backend
command: python manage.py runserver 0.0.0.0:8000 # test ortamı
restart: 'no'
volumes:
- ./backend/:/usr/src/app/
ports:
- 8000:8000
env_file:
- ./.env.dev
depends_on:
- db
frontend:
build: ./frontend
container_name: frontend
command: npm run serve
restart: 'no'
ports:
- 8080:8080
env_file:
- ./.env.dev
depends_on:
- backend
db:
image: postgres:13.0-alpine
container_name: database
restart: 'no'
volumes:
- postgres_data:/var/lib/postgresql/data/
env_file:
- ./.env.dev
volumes:
postgres_data:
backend dockerfile
# pull official base image
FROM python:3.8-alpine
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apk update \
&& apk add icu-data-full\
&& apk add --no-cache curl gpg gnupg\
&& apk add --no-cache postgresql-dev gcc libc-dev g++ libffi-dev libxml2 python3-dev musl-dev unixodbc unixodbc-dev mariadb-dev
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# copy project
COPY . .
# run entrypoint.sh
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
frontend dockerfile
# pull official base image
FROM node:16.17-alpine
# set work directory
WORKDIR /app
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./
# install project dependencies
RUN apk update
RUN npm install
# copy project
COPY ./ .
# build app for production with minification
RUN npm run build
EXPOSE 8080
CMD ["npm", "run", "serve"]