Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 34 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,42 @@
FROM node:14-alpine
# --- STAGE 1: Build ---
FROM node:lts-alpine AS build
WORKDIR /app

WORKDIR /usr/app
# Copia package.json e package-lock.json
COPY package*.json ./

COPY package.json ./
# Instala dependências
RUN npm ci --legacy-peer-deps

RUN npm install
# Copia todo o código
COPY . .

COPY ./ .
# --- RECEBE VARIÁVEIS DE BUILD ---
ARG REACT_APP_STAGE
ARG REACT_APP_HOMEPAGE

# Disponibiliza para o CRA
ENV REACT_APP_STAGE=$REACT_APP_STAGE
ENV REACT_APP_HOMEPAGE=$REACT_APP_HOMEPAGE

# Atualiza o package.json dinamicamente
RUN node -e "const fs = require('fs');const pkg = JSON.parse(fs.readFileSync('./package.json','utf8'));pkg.homepage = process.env.REACT_APP_HOMEPAGE || pkg.homepage;fs.writeFileSync('./package.json', JSON.stringify(pkg,null,2));console.log('✅ homepage setada para:', pkg.homepage);"

# Build do React
RUN npm run build

EXPOSE 7767
# --- STAGE 2: Runtime ---
FROM node:lts-alpine
WORKDIR /ena-map-server-front

# Instala o server estático
RUN npm install -g serve

# Copia o build do stage anterior
COPY --from=build /app/build ./build

# Expõe a porta
EXPOSE 3005

CMD ["npm","build"]
# Comando para servir o build
CMD ["serve", "-s", "build", "-l", "3005"]
52 changes: 43 additions & 9 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,46 @@
version: "3.1"
version: "3.9"

services:
ena-map-front:
build: ./
container_name: ena-map-front
stdin_open: true
volumes:
- .:/usr/app
ena-map-server-front:
container_name: EnaMapServerFront
build:
context: ./ena-map-server-front
dockerfile: Dockerfile
args:
REACT_APP_STAGE: dev # "production "se for servidor cefet
REACT_APP_HOMEPAGE: http://localhost:8888/ #"/mapserver" se for servidor cefet
ports:
- "3005:3005"
environment:
PORT: 3005
networks:
- mapserver
restart: always

ena-map-server-back:
container_name: EnaMapServerBack
build:
context: ./ena-map-server-back
dockerfile: Dockerfile
ports:
- 7767:7767
command: npm start
- "8888:8888"
environment:
DATABASE_URL: "mysql://admin:cbr90001@172.22.0.1:3306/servidor_mapas" #deve ser modificado de acordo com dados onde está executando
JWT_SECRET: "abcd1234-ab12-ba12-1212-123456789abc"
PORT: 8888
volumes:
- ./ena-map-server-back/assets/img:/ena-map-server-back/assets/img
- ./ena-map-server-back/assets/xml:/ena-map-server-back/assets/xml
- ./ena-map-server-back/assets/maps:/ena-map-server-back/assets/maps
- ./ena-map-server-back/assets/thumbs:/ena-map-server-back/assets/thumbs
networks:
mapserver:
ipv4_address: 172.22.0.20 # IP fixo
restart: always
networks:
mapserver: # Network renomeada
driver: bridge
ipam:
config:
- subnet: 172.22.0.0/24
gateway: 172.22.0.1
Loading