【发布时间】:2023-03-29 05:07:02
【问题描述】:
kubernetes 的本地设置:Mac OS
Docker for desktop >> kubernetes >> traefik >> Gitea
gitea 安装在集群中,并通过在http://gitea.local 访问的 treafik 暴露为 clusterIP 服务入口。到这里为止,一切都是黄油般光滑的。
痛苦:
现在我正在创建一个 dockerfile 并使用 docker build 来构建一个图像。此 dockerfile 正在尝试从 http://gitea.local 克隆存储库。问题是我总是被拒绝连接。
RUN mkdir -p apps sites/assets/css \
&& cd apps \
&& git clone http://gitea.local/inviadmin/testing.git
然后我只是在 dockerfile 中尝试了RUN curl http://gitea.local 只是为了调试并得到相同的结果:
curl: (7) Failed to connect to gitea.local port 80: Connection refused
如果我从 dockerfile 卷曲 google.com 就可以了。非常感谢任何帮助。
Dockerfile:
# syntax = docker/dockerfile:1.0-experimental
FROM bitnami/python:3.7-prod
ENV NVM_DIR=/root/.nvm
ENV NODE_VERSION=12.18.3
ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}"
RUN install_packages wget \
&& wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh \
&& chmod +x install.sh \
&& ./install.sh \
&& . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION} \
&& nvm use v${NODE_VERSION} && npm install -g yarn
RUN install_packages \
# when using ssh
git openssh-client openssh-server iputils-ping
#git
ARG GIT_BRANCH=master
#RUN ping host.docker.internal
RUN mkdir -p apps sites/assets/css \
&& cd apps \
&& git clone http://gitea.local/inviadmin/test.git --branch $GIT_BRANCH
FROM nginx:latest
COPY --from=0 /home/test/sample/sites /var/www/html/
COPY --from=0 /var/www/error_pages /var/www/
COPY build/nginx/nginx-default.conf.template /etc/nginx/conf.d/default.conf.template
COPY build/entry/docker-entrypoint.sh /
RUN apt-get update && apt-get install -y rsync && apt-get clean \
&& echo "#!/bin/bash" > /rsync \
&& chmod +x /rsync
VOLUME [ "/assets" ]
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
【问题讨论】:
-
你在代理后面吗?
-
嘿,从容器中尝试 nslookup。由于域是 .local 我认为您需要将其添加到 etc/hosts
-
@ΦXocę웃Пepeúpaツ 不,我不是。如果我卷曲任何东西都很完美。只有当我卷曲在其他容器中运行的服务的 url 时;收到此错误!此外,如果我从浏览器访问这些,一切都很顺利。
-
@MuhammadHasan 嘿,我已经在 private/etc/hosts 中添加了 gitea.local,这就是我可以在浏览器中毫无问题地访问它们的方式。
-
好的。所以我做了一个小实验。从容器内 ping abc.com。一旦失败,我使用 echo "127.0.0.1 abc.com" >> /etc/hosts 编辑了 /etc/hosts 文件。之后,ping 开始命中容器本身。如果您可以从容器内 ping 您的域并且它解析为正确的 IP,那么可以排除这种情况。但如果它无法解析到实际的 ip,那么这可能是真正的根本原因。
标签: docker kubernetes dockerfile docker-for-mac gitea