|
|
- # 容器内部服务
-
- 这是本步骤的定义:
- ```
- {
- "title": "配置容器服务",
- "program":"scripts/init.sh",
- "text": "scenario/ep5/1.md",
- "check":"check/check.sh"
- }
- ```
- 本步骤中使用到了**program**与**check**字段,这两个字段分别引用了一个在本步骤开始前执行,以及结束时用于检查当前步骤是否完成的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. 没有任何输出才不会进入下一步
|