Estou criando um container java, e possuo uma configuração de log com o Log4J onde a gravação do log está apontada para o seguinte caminho: /var/log/api/ (tanto no Host quanto no Container)
Buscando informações na internet a opção que possuo é a utilização de "volume", configurei no Dockerfile e no docker-compose da seguinte maneira:
Dockerfile
FROM openjdk:8
LABEL maintainer="Renato Rodrigues"
WORKDIR /opt/javaapp
COPY api/api.jar /opt/javapp/api.jar
VOLUME ["/var/log/api"]
ENTRYPOINT ["sh", "-c", "java -jar /opt/javapp/api.jar"]
EXPOSE 84
EXPOSE 05
EXPOSE 43
docker-compose
version: '3'
volumes:
logs:
services:
api:
container_name: recad_api-container
image: cap/recadastro_api_img
build:
context: ./
dockerfile: ./api/Dockerfile
ports:
- '8443:8443'
- '5005:5005'
- '8084:8084'
restart: always
volumes:
- logs:/var/log/api:/var/log/api
Ao executar o comando: docker-compose up --build -d
Ocorre o seguinte erro:
ERROR: for api Cannot create container for service api: invalid mode: /var/log/api