热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在docker-composeup-d之后,Docker容器以代码0退出

如何解决《在docker-composeup-d之后,Docker容器以代码0退出》经验,为你挑选了1个好方法。

我知道这个问题在各种情况下都会被问到,但是尽管我在互联网上阅读了所有内容,但我仍然很困惑。

我想在构建容器“ mywebsite”之后执行脚本,并且为此使用了脚本ENTRYPOINT,我知道在正常使用中,ENTRYPOINT执行命令后,容器“ mywebsite”退出。不幸的是,我尝试了几种技巧来避免退出,但没有成功。

在我的 DOCKERFILE有这个:

FROM php:7.1.17-apache

[...]    

WORKDIR /var/www

COPY docker-entrypoint.sh /var/www/docker-entrypoint.sh
ENTRYPOINT ["sh", "/var/www/docker-entrypoint.sh"]

然后在我的docker-entrypoint.sh中,我有这个:

#!/bin/bash
set -e

cd www
chown -R www-data:www-data sites modules themes

exec "$@"

这是我的docker-compose.yml:

version: '3.3'

services:
  mywebsite:
    build: .
    extra_hosts:
      - "mywebsite.local:127.0.0.1"
    hostname: mywebsite
    domainname: local
    ports:
      - 8088:80
    volumes:
      - ./www:/var/www/www
      - ./vendor:/var/www/vendor
      - ./scripts:/var/www/scripts
    links:
      - database:database
    restart: always
    tty: true
  database:
    image: mysql:5.5.49
    container_name: mysql-container
    ports:
      - 3307:3306
    volumes:
      - ./www/dumps/mywebsite.sql:/docker-entrypoint-initdb.d/dump.sql
    restart: always
    command: --max_allowed_packet=32505856
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: mywebsite

构建时,所有步骤都很好,并且所有设置都正确,但是容器“ mywebsite”不断退出。(“数据库”服务运行良好)

我曾有过tty: trueexec "$@"但这些都不起作用。



1> 小智..:

您可以使用以下命令结束 tail -f /dev/null

我经常在docker-compose.yml中直接使用command: tail -f /dev/null。很容易看出我如何保持容器运行。


推荐阅读
author-avatar
cb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有