Skip to content

Commit

Permalink
Merge pull request #64 from unb-mds/fix/docker
Browse files Browse the repository at this point in the history
fix(docker): arruma os volumes para possibilitar live reload no projeto
  • Loading branch information
mateusvrs authored Nov 2, 2023
2 parents 19982d9 + 266321a commit 348b04a
Show file tree
Hide file tree
Showing 6 changed files with 3,738 additions and 17 deletions.
40 changes: 39 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ git clone https://github.com/unb-mds/2023-2-Squad11.git

Para rodar o projeto, você precisa instalar as dependências globais, que são:

- Python v3.11 (ou superior)
- Python v3.11.6 e Pip v22.0.2 (ou superior)
- Node v20.9.0 e NPM v10.1.0 (ou superior)
- Docker Engine v24.0.6 e Docker Compose v2.21.0 (ou superior)

### Ambiente
Expand All @@ -25,6 +26,30 @@ Para configurar o ambiente, você pode rodar o seguinte script:
bash ./scripts/env.sh
```

### Dependências do projeto

Para instalar as dependências do projeto, você pode rodar os seguintes comando:

```bash
# Crie um ambiente virtual Python
python3 -m venv env

# Ative o ambiente virtual
source env/bin/activate

# Instale os pacotes do Python
pip install -r requirements.txt

# Instale os pacotes do Node
cd web && npm install

# Volte para a raiz do projeto
cd ..

# Confirmar permissão de execução do entrypoint
chmod +x ./api/entrypoint.sh
```

### Execução

Para executar o projeto, você pode rodar o seguinte comando:
Expand All @@ -33,6 +58,19 @@ Para executar o projeto, você pode rodar o seguinte comando:
docker compose up
```

**Observações do Docker:**

```bash
# Se você quiser rodar em segundo plano
docker compose up -d

# Se alterações foram feitas no Dockerfile ou no docker-compose.yml
docker compose up --build

# Se for necessário deletar os volumes
docker compose down -v
```

### Migrations

Para criar possíveis novas migrations, você pode rodar o seguinte comando:
Expand Down
3 changes: 0 additions & 3 deletions docker/entrypoint.sh → api/entrypoint.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,4 @@ python3 manage.py migrate
echo 'Criando usuário admin...'
python3 manage.py initadmin

echo 'Coletando arquivos estáticos...'
python3 manage.py collectstatic --no-input

exec "$@"
8 changes: 7 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
services:
db:
image: postgres:16
container_name: postgresql
volumes:
- postgres_data:/var/lib/postgresql/data/
env_file:
- ./api/.env

api:
restart: unless-stopped
container_name: django-api
build:
context: .
dockerfile: ./docker/Dockerfile
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code/
- ./api:/usr/src/api
env_file:
- ./api/.env
ports:
Expand All @@ -23,10 +25,14 @@ services:

web:
restart: unless-stopped
container_name: nextjs-web
build:
context: .
dockerfile: ./docker/Dockerfile.web
command: npm run dev
volumes:
- ./web:/usr/src/web
- /usr/src/web/node_modules
ports:
- 3000:3000
depends_on:
Expand Down
16 changes: 8 additions & 8 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM python:3.11.5-alpine3.18
FROM python:3.11.6-alpine3.18

# definir o diretório de trabalho
WORKDIR /usr/src/app
WORKDIR /usr/src/api

# definir variáveis de ambiente
ENV PYTHONDONTWRITEBYTECODE 1
Expand All @@ -11,18 +11,18 @@ ENV PYTHONUNBUFFERED 1
RUN apk update && apk add postgresql-dev gcc python3-dev musl-dev

# copiar os requisitos python
COPY ./requirements.txt /usr/src/app/requirements.txt
COPY ./requirements.txt /usr/src/api/requirements.txt

# instalação das dependências
RUN pip install --upgrade pip && \
pip install -r /usr/src/app/requirements.txt
pip install -r /usr/src/api/requirements.txt

# copiar entrypoint.sh e dar permissão de execução
COPY ./docker/entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh
COPY ./api/entrypoint.sh /usr/src/api/entrypoint.sh
RUN chmod +x /usr/src/api/entrypoint.sh

# copiar o projeto
COPY ./api /usr/src/app/
COPY ./api /usr/src/api/

# executar o arquivo de inicialização
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
ENTRYPOINT ["/usr/src/api/entrypoint.sh"]
9 changes: 5 additions & 4 deletions docker/Dockerfile.web
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
FROM node:18-alpine3.17
FROM node:20.9.0-alpine3.18

# definir o diretório de trabalho
WORKDIR /usr/src/app
WORKDIR /usr/src/web

# baixar e instalar dependências
COPY ./web/package.json /usr/src/app/package.json
COPY ./web/package.json /usr/src/web/package.json
COPY ./web/package-lock.json /usr/src/web/package-lock.json
RUN npm install

# adicionar rotas
EXPOSE 3000

# copiar arquivos do projeto
COPY ./web /usr/src/app
COPY ./web /usr/src/web
Loading

0 comments on commit 348b04a

Please sign in to comment.