Tomcat, Docker, Logging, and STDOUT?

后端 未结 6 1033
南旧
南旧 2021-01-19 12:17

I\'m running tomcat in docker, but I can\'t see the logs. They are written to various log files under tomcat/logs, but I can\'t see them when tomcat is running in a docker c

6条回答
  •  盖世英雄少女心
    2021-01-19 12:38

    Ok, your dockerfile should contain something like this**:

    from tomcat:7-jre8
    copy target/myapp.war /usr/local/tomcat/webapps/myapp.war
    entrypoint ["/bin/bash", "/usr/local/tomcat/bin/catalina.sh", "run"]
    

    Then you can run a container based on this image with something like:

    docker run -itd -p 8080:8080 --name aname animage
    

    So, the catalina 'run' command is designed to redirect all logs to stdout. This is useful to us because this is how docker works. If you run the container now you'll be able to run:

    docker logs aname
    

    The output will be anything that has been sent to stdout within the container. You can do with this what you wish, but common strategies are transporting the logs to logstash, splunk, or a thousand other places, or you could write them to a file (though that last one is mostly for developers).

    ** Of course, you'll have to change the entrypoint to match the specifics of your installation. And the run command I've shown here is for a daemon.

    Original problem: Your original problems were based on a common mistake; you were trying to run the tomcat server during provisioning (building the image). You actually want to run the server when you run the container. So, I've removed the run and replaced it with an entrypoint, which is the correct way of running a command like this. Finally, cmd is for passing parameters to the entrypoint, which we don't need in this case.

    Finally, I've chosen to use cataline.sh run rather than start because run is designed to send the logs to stdout rather than a file, as start does.

    References

    View logs: https://docs.docker.com/config/containers/logging/

    Conf logs: https://docs.docker.com/config/containers/logging/configure/

提交回复
热议问题