首页 > 解决方案 > 码头集装箱可以“睡觉”吗?

问题描述

我在 docker 容器内运行服务器。我通过使用docker-compose up -dwhich 工作正常来启动它,我可以访问服务器。但是一段时间后,我收到 503 - 服务不可用错误。

然后当我执行任何 docker 命令时docker ps ,或者docker logs服务器再次完美运行。docker ps显示容器是几天前创建的,但 Status 显示Up 1 second. 有什么方法可以让我知道我的 docker 之前处于什么状态?如何docker ps改变状态?

docker-compose.yaml

version: '3'
services:
  postgres:
    restart: always
    image: postgres:12.1
    environment:
      POSTGRES_PASSWORD: pass
      POSTGRES_USER: user
    networks:
      - mynetwork
    volumes:
      - /home/user/data/postgres:/var/lib/postgresql/data
    ports:
      - 5432:5432
  web:
    restart: always
    build: .
    environment:
      JPDA_ADDRESS: 8001
      JPDA_TRANSPORT: dt_socket
    networks:
      - mynetwork
    depends_on:
      - postgres
    ports:
      - 80:8080
      - 8001:8001
    volumes:
    - /home/user/data/images:/data/images
networks:
  mynetwork:
    driver: bridge

Dockerfile


FROM maven:3.6.3-jdk-8-slim as java-build-stage

WORKDIR /app/build
COPY . .

RUN mvn clean package -am -DskipTests -Dmaven.javadoc.skip=true -P deployment

# create the image to run the tomcat
FROM tomcat:9.0.30-jdk8-openjdk-slim as myname-build

ADD docker-resources/tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml
ADD docker-resources/index.html /usr/local/tomcat/webapps/ROOT/index.jsp
COPY --from=java-build-stage /app/build/deployment/target/myname.war /usr/local/tomcat/webapps/myname.war

CMD ["catalina.sh", "jpda" ,"run"]

标签: dockerdocker-composedockerfile

解决方案


推荐阅读