如何运行或将具有git依赖项的应用程序部署到私有仓库

贡特·佐赫鲍尔(GünterZöchbauer)

我的应用程序对私有BitBucket存储库具有Git依赖关系。

  my_package:
    git:
      url: [email protected]:myuser/mypackage.git

当我跑步时

gcloud --verbosity debug preview app run app.yaml

我懂了

Resolving dependencies...
Git error. Command: git clone --mirror [email protected]:myuser/my_package.git /root/.pub-cache/git/cache/my_package-6fe77906161a7a9252973e29e39a4149b75f9a7e
error: cannot run ssh: No such file or directory
fatal: unable to fork

我想在上添加一条ADD指令Dockerfile将是一个可行的解决方法。
该仓库需要检出到本地目录才能正常工作。

我试过了:

FROM google/dart-runtime
ADD ../my_package ../my_package

https://docs.docker.com/reference/builder/#add

The <src> path must be inside the context of the build; you cannot ADD 
../something /something, because the first step of a docker build is to
send the context directory (and subdirectories) to the docker daemon.

看来我必须将..my_package目录移动my_app目录中。这不漂亮:-(

当我向Dockerfile run失败添加一条假行时,但是如果我添加一条ADD ...指令,它似乎将被完全忽略。

贡特·佐赫鲍尔(GünterZöchbauer)

更新2

我以前的解决方案仍然很不方便,因为在每次重新启动应用程序之前,我必须每次都进行检入。

在强大的支持下,我找到了一个更加方便的解决方案。我挂载目录而不是符号链接。有关更多详细信息,请参见https://superuser.com/questions/842642我不知道这是否可以以及如何在其他操作系统上运行(Win,OX X,...)

我安装../my_packagedocker/my_package(而不是符号链接)并使用此Dockerfile:

FROM google/dart

WORKDIR /app
ENV DART_SDK /usr/lib/dart

ADD dart_run.sh /dart_runtime/

RUN chmod 755 /dart_runtime/dart_run.sh && \
 chown root:root /dart_runtime/dart_run.sh

ADD pubspec.yaml /app/
ADD pubspec.lock /app/
ADD docker/my_package /my_package
RUN pub get
ADD . /app/
RUN pub get --offline

## Expose ports for debugger (5858), application traffic (8080)
## and the observatory (8181)
EXPOSE 8080 8181 5858

CMD []
ENTRYPOINT ["/dart_runtime/dart_run.sh"]

更新1

事实证明,仅提供已.git检出软件包目录git-daemon是一个更方便的解决方案。
我要做的就是根据https://www.dartlang.org/cloud/上的文档进行全部设置,并在pubspec.yamlgit-daemon服务的此仓库中使用git依赖项

  my_package:
    git:
      url: git://192.168.2.96/my_package
      ref: test

该URL在本地以及在Docker容器内工作时均有效。

原版的

我可以使用此Dockerfile运行我的应用

FROM google/dart

WORKDIR /app

RUN \
  apt-get update && \
  apt-get install -y openssh-client

ADD tool/bitbucket_deployment_key /root/.ssh/id_rsa

RUN \
  mkdir -p /root/.ssh && \
  echo "Host bitbucket.org" >> /root/.ssh/config && \
  echo "    StrictHostKeyChecking no" >> /root/.ssh/config && \
#  ssh-keyscan -t rsa -H bitbucket.org,131.103.20.167 >> /root/.ssh/known_hosts && \
  chmod 400 /root/.ssh/id_rsa && \
  eval $(ssh-agent) && \
  ssh-add /root/.ssh/id_rsa

RUN \
  git clone [email protected]:myuser/my_package.git /my_package --branch test && \
  rm /root/.ssh/id_rsa

#ENV DART_SDK /usr/lib/dart

ADD dart_run.sh /dart_runtime/

RUN chmod 755 /dart_runtime/dart_run.sh && \
  chown root:root /dart_runtime/dart_run.sh

ADD pubspec.yaml /app/
ADD pubspec.lock /app/
RUN pub get
ADD . /app/
RUN pub get --offline

# Expose ports for debugger (5858), application traffic (8080)
# and the observatory (8181)
EXPOSE 8080 8181 5858

CMD []
ENTRYPOINT ["/dart_runtime/dart_run.sh"]

我是id_rsa使用ssh-keygen创建的,没有密码短语。这就是我在git clone命令后从图像中删除文件的原因无论如何,以后都不会使用它。

在我的BitBucket存储库中,我添加了id_rsa.pub作为部署密钥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何运行或将具有git依赖项的应用程序部署到私有仓库

来自分类Dev

如何通过git push以私有存储库作为依赖项部署Azure Go Web应用程序?

来自分类Dev

如何将私有应用程序部署到Windows Phone?

来自分类Dev

如何将私有应用程序部署到Windows Phone?

来自分类Dev

我可以将具有iOS 8扩展的应用程序部署到运行iOS 7的设备吗?

来自分类Dev

通过java命令运行具有依赖项的Gradle编译Java应用程序

来自分类Dev

具有 jar 依赖项的 Spring Boot 应用程序在 maven 构建后不会运行

来自分类Dev

在没有IIS和私有密钥的情况下将Nodejs应用程序部署到Windows

来自分类Dev

使用 CMake 和 Conan 为 Linux 和 Windows 部署具有第 3 方依赖项的应用程序

来自分类Dev

如何安装没有某些依赖项的应用程序?

来自分类Dev

加载私有git仓库的composer依赖

来自分类Dev

Travis构建/测试成功后,如何将Node.js应用程序部署到私有服务器?

来自分类Dev

使用 npm 依赖项将 laravel 应用程序部署到共享主机

来自分类Dev

如何将更新推送到具有文件系统的已部署流星应用程序?

来自分类Dev

明确将多个应用程序作为具有共同依赖项和共同来源的子项目分开

来自分类Dev

Windows Phone 私有应用程序部署

来自分类Dev

将具有本地依赖项的 Maven 项目部署到 WildFly

来自分类Dev

无论如何要在逻辑应用程序设计器中拖动具有依赖项的操作?

来自分类Dev

如何容器化在同一解决方案中具有依赖项的 .net 核心应用程序?

来自分类Dev

我们如何使用管道将应用程序从 azure devops 部署到具有不同订阅和组织的 azure appservice

来自分类Dev

如何将node.js应用程序部署到heroku?有没有可能?

来自分类Dev

引用模块化应用程序中具有相同依赖项的多版本

来自分类Dev

在不使用Xcode的macOS中开发具有依赖项的应用程序

来自分类Dev

引用模块化应用程序中具有相同依赖项的多版本

来自分类Dev

C++ 应用程序:将值从窗体传递到主窗口私有变量

来自分类Dev

具有部署目标iOS 8.3的应用程序可以在iOS 8.2上运行吗?

来自分类Dev

如何将 python 应用程序部署到运行 Windows 的远程机器上

来自分类Dev

如何将持续运行的应用程序部署到 Azure Service Fabric?

来自分类Dev

如何为具有私有git子模块的私有仓库设置GitHub Actions CI服务?

Related 相关文章

  1. 1

    如何运行或将具有git依赖项的应用程序部署到私有仓库

  2. 2

    如何通过git push以私有存储库作为依赖项部署Azure Go Web应用程序?

  3. 3

    如何将私有应用程序部署到Windows Phone?

  4. 4

    如何将私有应用程序部署到Windows Phone?

  5. 5

    我可以将具有iOS 8扩展的应用程序部署到运行iOS 7的设备吗?

  6. 6

    通过java命令运行具有依赖项的Gradle编译Java应用程序

  7. 7

    具有 jar 依赖项的 Spring Boot 应用程序在 maven 构建后不会运行

  8. 8

    在没有IIS和私有密钥的情况下将Nodejs应用程序部署到Windows

  9. 9

    使用 CMake 和 Conan 为 Linux 和 Windows 部署具有第 3 方依赖项的应用程序

  10. 10

    如何安装没有某些依赖项的应用程序?

  11. 11

    加载私有git仓库的composer依赖

  12. 12

    Travis构建/测试成功后,如何将Node.js应用程序部署到私有服务器?

  13. 13

    使用 npm 依赖项将 laravel 应用程序部署到共享主机

  14. 14

    如何将更新推送到具有文件系统的已部署流星应用程序?

  15. 15

    明确将多个应用程序作为具有共同依赖项和共同来源的子项目分开

  16. 16

    Windows Phone 私有应用程序部署

  17. 17

    将具有本地依赖项的 Maven 项目部署到 WildFly

  18. 18

    无论如何要在逻辑应用程序设计器中拖动具有依赖项的操作?

  19. 19

    如何容器化在同一解决方案中具有依赖项的 .net 核心应用程序?

  20. 20

    我们如何使用管道将应用程序从 azure devops 部署到具有不同订阅和组织的 azure appservice

  21. 21

    如何将node.js应用程序部署到heroku?有没有可能?

  22. 22

    引用模块化应用程序中具有相同依赖项的多版本

  23. 23

    在不使用Xcode的macOS中开发具有依赖项的应用程序

  24. 24

    引用模块化应用程序中具有相同依赖项的多版本

  25. 25

    C++ 应用程序:将值从窗体传递到主窗口私有变量

  26. 26

    具有部署目标iOS 8.3的应用程序可以在iOS 8.2上运行吗?

  27. 27

    如何将 python 应用程序部署到运行 Windows 的远程机器上

  28. 28

    如何将持续运行的应用程序部署到 Azure Service Fabric?

  29. 29

    如何为具有私有git子模块的私有仓库设置GitHub Actions CI服务?

热门标签

归档