Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 

2.0 KiB

容器内部服务

这是本步骤的定义:

{
    "title": "配置容器服务",
    "program":"scripts/init.sh",
    "text": "scenario/ep5/1.md",
    "check":"check/check.sh"
}

本步骤中使用到了programcheck字段,这两个字段分别引用了一个在本步骤开始前执行,以及结束时用于检查当前步骤是否完成的shell脚本,下面将以此为实例,介绍这两个字段的用途。

初始化脚本

date +gitcourse服务器端脚本执行于%Y年%m月%d日%H:%M -d "+8 hour" >>temp
这是scripts/init.sh的具体内容,它的作用是在本步骤开始前,将当前的时间打印到*/temp*文件中,我们将在下一步中通过容器内部服务访问到此文件的内容

准备工作

这是/etc/nginx/nginx.conf的内容

events {
    worker_connections  1024;
}
http {
    server {
        default_type 'text/html';
        charset utf-8;
        listen 8888;
        location / {
            root /;
            index index.html;
        }
    }
}

此实验已经预装了nginx服务,并在配置文件中指定了8888端口作为对外服务的入口
并且在根目录下放置了一个index.html文件,当本步骤开启后,您将可以通过nginx服务访问到index.html以及由init.sh创建的temp文件
但是在此之前,请完成nginx服务的开启
service nginx start
否则在下一步将无法访问由容器提供的服务

检查脚本

为了确保学员完成必要的前置任务,您可以通过check字段指定一个检查脚本
这是当前步骤的check/check.sh的内容:

if ps -ef|grep "nginx"|egrep -v grep >/dev/null
then
    echo "1"
fi

当且仅当容器中已运行nginx服务时,才会允许进入下一步。当您在编写检查脚本时,需要注意以下几点:

  1. 脚本默认通过*/bin/bash*来执行
  2. 有任何输出或者报错,均会允许进入下一步
  3. 没有任何输出才不会进入下一步