Queria fazer um teste simulando o container rodando na minha máquina local ao inves de iniciar direto pelo InteliJ
Eu subi uma nova imagem no docker-hub depois de ter rodado o docker build pra gerar a nova imagem com o target atualizado
Criei um redis.env na pasta env apenas para teste contendo:
REDIS_HOST=redis
REDIS_PORT=6379
E no application-prod.properties adicionei as duas configurações necessárias
spring.redis.host=${REDIS_HOST}
spring.redis.port=${REDIS_PORT}
Porém quando rodo um docker-compose up e tento acionar os endpoits, ele gera Erro: Unable to connect to Redis, alguém já passou por esse problema consegue me ajudar por favor?
Obs:
- Subindo o projeto localmente e dois containers isolados (Postgres e Redis), funciona
- Ao rodar o docker-compose up, todos os serviços sobem corretamente sem erros, tanto é que consigo acionar alguns endpoints, o erro está diretamente no redis
Segue abaixo meu docker-compose.yml
version: '3.9'
services:
db:
image: postgres
env_file: ./env/postgres.env
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER}"]
interval: 5s
timeout: 5s
retries: 10
app:
image: lucasconceicao/ambiente:latest
env_file: ./env/app.env
restart: unless-stopped
ports:
- "8080:8080"
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
nginx:
image: nginx:stable-alpine
ports:
- "80:80"
volumes:
- ./nginx:/etc/nginx/conf.d
restart: unless-stopped
depends_on:
- app
redis:
image: redis:7.2.4
env_file: ./env/redis.env
restart: unless-stopped
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
timeout: 5s
retries: 10
volumes:
pgdata:
------------------------------------------------------------------------------------------------------------------------------------------------------
Meu application-prod.properties:
spring.datasource.url=${SPRING_DATASOURCE_URL}
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
app.security.jwt.secret=12345678
spring.mail.host=${MAIL_HOST}
spring.mail.username=${MAIL_USER}
spring.mail.password=${MAIL_PASSWORD}
spring.mail.port=587
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.datasource.hikari.minimum-idle=25
spring.datasource.hikari.maximum-pool-size=50
spring.datasource.hikari.connectionTimeout=10000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000
spring.redis.host=${REDIS_HOST}
spring.redis.port=${REDIS_PORT}