加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Alpine Linux中使用bash脚本?

发布时间:2020-12-16 03:25:04 所属栏目:安全 来源:网络整理
导读:我对使用wait-for-it使用基于Alpine Linux发行版的映像在Docker-Compose中使一项服务等待另一项感兴趣. 但是,如果我克

我对使用wait-for-it使用基于Alpine Linux发行版的映像在Docker-Compose中使一项服务等待另一项感兴趣.

但是,如果我克隆“等待”存储库并添加以下Dockerfile,

FROM alpine
RUN apk --update add bash
COPY wait-for-it.sh wait-for-it.sh
CMD ["./wait-for-it.sh","www.google.com:80"]

然后我使用docker build –tag waitforit来构建它.其次是docker run waitforit,但我收到此错误消息:

timeout: can't execute '15': No such file or directory
wait-for-it.sh: timeout occurred after waiting 15 seconds for www.google.com:80

相比之下,这是在我的(Ubuntu 16.04 LTS)计算机上运行此命令时看到的内容:

wait-for-it.sh: waiting 15 seconds for www.google.com:80
wait-for-it.sh: www.google.com:80 is available after 0 seconds

好像bash脚本无法在Alpine容器中工作,就像在我的Ubuntu本地计算机上一样.我怎样才能解决这个问题?

最佳答案
该等待脚本与sh不兼容,因此您需要将bash安装到您的高山映像中.

但是,我是否建议避免像这样的“黑客”,而改用HEALTHCHECK?

例如,让一项服务等待另一项变得健康将看起来像这样:

services:
  my_service:
    image: something
    healthcheck:
      test: nc -z 3306

  other_service
  depends_on:
    my_service:
      condition: service_healthy

请注意,这仅适用于v2撰写文件,不适用于v3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读