You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.0 KiB

3 years ago
  1. # 容器内部服务
  2. 这是本步骤的定义:
  3. ```
  4. {
  5. "title": "配置容器服务",
  6. "program":"scripts/init.sh",
  7. "text": "scenario/ep5/1.md",
  8. "check":"check/check.sh"
  9. }
  10. ```
  11. 本步骤中使用到了**program**与**check**字段,这两个字段分别引用了一个在本步骤开始前执行,以及结束时用于检查当前步骤是否完成的shell脚本,下面将以此为实例,介绍这两个字段的用途。
  12. ## 初始化脚本
  13. `date +gitcourse服务器端脚本执行于%Y年%m月%d日%H:%M -d "+8 hour" >>temp`
  14. 这是*scripts/init.sh*的具体内容,它的作用是在本步骤开始前,将当前的时间打印到*/temp*文件中,我们将在下一步中通过容器内部服务访问到此文件的内容
  15. ## 准备工作
  16. 这是/etc/nginx/nginx.conf的内容
  17. ```
  18. events {
  19. worker_connections 1024;
  20. }
  21. http {
  22. server {
  23. default_type 'text/html';
  24. charset utf-8;
  25. listen 8888;
  26. location / {
  27. root /;
  28. index index.html;
  29. }
  30. }
  31. }
  32. ```
  33. 此实验已经预装了**nginx**服务,并在配置文件中指定了**8888**端口作为对外服务的入口
  34. 并且在根目录下放置了一个*index.html*文件,当本步骤开启后,您将可以通过nginx服务访问到*index.html*以及由*init.sh*创建的*temp*文件
  35. 但是在此之前,请完成**nginx服务的开启**:
  36. `service nginx start`
  37. 否则在下一步将无法访问由容器提供的服务
  38. ## 检查脚本
  39. 为了确保学员完成必要的前置任务,您可以通过**check**字段指定一个检查脚本
  40. 这是当前步骤的*check/check.sh*的内容:
  41. ```
  42. if ps -ef|grep "nginx"|egrep -v grep >/dev/null
  43. then
  44. echo "1"
  45. fi
  46. ```
  47. 当且仅当容器中已运行nginx服务时,才会允许进入下一步。当您在编写检查脚本时,需要注意以下几点:
  48. 1. 脚本默认通过*/bin/bash*来执行
  49. 2. 有任何输出或者报错,均会允许进入下一步
  50. 3. 没有任何输出才不会进入下一步