Tag: Travis ci

react-scripts-ts没有在travis中安装ts-jest

我试图用我的Dockerized React应用程序来使用Travis CI,但是每当Travis运行npm test我得到的错误是: Cannot find module 'ts-jest' from 'setupTests.ts' at Resolver.resolveModule (node_modules/react-scripts-ts/node_modules/jest-resolve/build/index.js:179:17) at Object.<anonymous> (src/setupTests.ts:1:103). npm install不会给出任何错误。 完整的堆栈跟踪+构build过程在这里 ,代码在这里 我不确定这是否是React的问题,因为我第一次尝试Docker和Travis,但错误似乎来自react-scripts-ts 。 任何帮助,将不胜感激。

如何实现Multi-Arch-Docker Image构build的自动化

我已经在github上docker化了一个nodejs应用程序。 我的Dockerfile基于正式的nodejs图像。 官方的node-repo支持多种体系结构(x86,amd64,arm)。 这意味着我可以在不同的机器上构build完全相同的Dockerfile,从而为相应的体系结构创build不同的映像。 所以我正试图为我的应用程序无缝地提供相同的体系结构。 但是,如何? 我的目标是尽可能自动化。 我知道我理论上需要创build一个docker-manifest,它充当docker-repo并将最终用户docker-clientredirect到合适的映像。 Docker-Hub本身可以监视一个github仓库,并启动一个自动构build。 这将照顾amd64图像。 但是剩下的架构呢? 还有一种叫做“TravisCI”的服务,我想可以在qemu的帮助下照顾arm的搭build。 那么我认为这两个回购可以通过清单回购静态引用。 但是这仍然留下了一些未完成的架构。 但是使用多种服务/构build相同的应用程序的方式感觉不对。 有没有人知道一个更好,更完整的解决这个问题? 它基本上是通过几台机器运行相同的dockerfile并将其logging在清单中。

在Travis-ci上的Docker容器

我有一个Dockerfile,我试图使用RSpec,serverspec和docker-api进行testing。 在本地(使用boot2docker,因为我在OS X上)这个工程很好,所有我的testing通过,但在travis-ci没有testing通过。 我的.travis.yml文件是这样的: language: ruby rvm: – "2.2.0" sudo: required cache: bundler services: – docker before_install: – docker build -t tomasbasham/nginx . – docker run -d -p 80:80 -p 443:443 –name nginx -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf tomasbasham/nginx script: bundle exec rspec 我在这里做了一些明显的错误吗? 我已经创build并在travis-ci上运行的存储库位于GitHub上 。 可能还有一些我不知道的错误

TravisCI / Docker支持:iptables:没有链/目标/匹配的名称

我尝试从Travis构build启动Docker镜像时收到以下错误: 41.39s$ docker pull zopyx/existdb-22 latest: Pulling from zopyx/existdb-22 Status: Downloaded newer image for zopyx/existdb-22:latest before_install.2 13.75s$ docker pull zopyx/existdb-30 latest: Pulling from zopyx/existdb-30 Status: Downloaded newer image for zopyx/existdb-30:latest 8.90s$ docker run -d -p 127.0.0.1:22081:8080 –name existdb22 zopyx/existdb-22 143fb4d9226f46361aa36ce4f2c5144b491d66b00801c9f5af4247d80edd1d96 Error response from daemon: Cannot start container 143fb4d9226f46361aa36ce4f2c5144b491d66b00801c9f5af4247d80edd1d96: iptables failed: iptables –wait -t filter -A […]

我的文件存在于Docker镜像中的位置?

我将在Travis-CI版本中切换到基于容器的基础架构。 所以我在我的Dockerfile中写下了以下命令,镜像成功构build: RUN apt-get install software-properties-common -y RUN add-apt-repository ppa:ubuntu-toolchain-r/test -y RUN apt-get update RUN apt-get install gcc-4.9 -y RUN apt-get install build-essential perl python git -y RUN apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev -y RUN apt-get install libedit-dev -y RUN apt-get install flex bison gperf libicu-dev libxslt-dev -y RUN git clone git://code.qt.io/qt/qt5.git qt5 RUN […]

在travis的幕后发生的事情,导致本质上是相同的行为如此不同的工作?

我有一个我想在特拉维斯testing的剧本。 这是travis.yml文件: #sudo: required TRAVIS_SECURE_ENV_VARS: true language: python python: 2.7 services: – docker env: global: secure: "BI6cUmDsExjZdmw2+xrDfyTS2+x5xk1c9kvVOinY57upNcoOsolFT6XPEsBUH6e2GzFyHWQJ96yco7wUlGGFrTfxqpRN48uIjvsepr1XaWeYFczl7yOaAJWvCFPuX51Swdsbw6EN3Djw3V2oYvANM96t+FYHW+OK1wsiGu2A9yvLbFxidiqZFP0MIyRTwxB8mnCm1ZUT1Cnu23fIVkUlzXkTpC06EymxWbdAWAFkmyjzoV0q5oosMrEJXelnC6ezOIV4PwrB5vHfe9q0CcssTGi6d3onDXeBL8x1I/ZYDp+J7xk/tfhDBNdcn3J2i2VJtcIuagbzv9NN/3x4yLNPEZ1N8so/yueVpsJdgqng+ef5opifm0btLfdaX5ZaammBnfrd8mSS+witzKqLllQges3Do1pcozPB534rxEQLYzvVjmoVtrdSM2xUP80biTpQ81q5Vt9/HROI2QPA1F/e2zIudKXxQSWrEsU89bSFTgYDzmkStEGcfom7GvyYEfbTaEZE6Hh2ofHo2EAEuNStAVazasozPDSrWBzT1g7T8no3UCv0bQQdrJ1ZGQ37MsaGoX/NfZS5qMhlNoZnNcAUrFz/A81OykUjJcnCxG8SSHgG6jNFFw1M+UyqjqI1Mv3abCdT8CbfcZvYDdNKPPobLxf+75KUr235/NlXetgiWnw=" before_install: – openssl aes-256-cbc -K $encrypted_4e087206a019_key -iv $encrypted_4e087206a019_iv -in id_travis.enc -out id_travis -d – openssl aes-256-cbc -K $encrypted_4e087206a019_key -iv $encrypted_4e087206a019_iv -in id_travis.enc -out id_travis -d – sudo apt-get update – sudo apt-get remove docker-engine -yq – sudo apt-get […]

在Travis的容器中运行testing

在Travis上构build我的应用程序时,我试图在Docker容器中运行testing。 容器启动和testing运行,当我logging容器输出,我可以看到他们已经通过。 这是我的理解,我可以使用grep,如下所示。 所以这是我的travis脚本: 脚本: docker工人 – 组成up -d docker日志dockertestapp_app_1 docker日志2>&1 dockertestapp_app_1 | grep -q'npm info ok' 我只想grep容器日志的输出,看看testing是否通过,但总是失败。 我错过了一些简单的东西吗 先谢谢你!

为节点应用程序实现CI /部署pipe道

为了实现持续集成和TDD,我将很快在重写节点应用程序。 我也想devise和build立一个用于开发,分期和生产的部署pipe道。 目前我正在使用Shipit将更改推送到具有预configuration环境的不同实例。 我听说过部署Docker容器所需的环境,我想了解更多。 我正在看TravisCI和自动化testing/构build,并从我的理解,可以推动docker图像到构build成功后的registry。 我还在学习扩展,并且考虑了一个生产devise,该devise包含服务3个集群版本的节点应用程序,Redis集群和2个PostgreSQL节点的Google Cloud服务器/服务,每个服务位于负载平衡器后面。 我听说Kubernetes被用来pipe理和部署集装箱化的应用程序,但我很好奇它是如何融合在一起的。 在我的脑海里,我认为这个过程似乎如下: 在开发机器上提交更改 – 推送到存储库。 TravisCI构build并运行testing(如何将迁移和推送到postgreSQL服务的变化?)推送到Google云容器registry中。 loginGoogle容器引擎并使用Kubernetes运行应用程序。 那么Redis集群呢? PostgreSQL节点? 如果这个问题缺乏清晰度和知识,我会事先道歉,但是在我走之前,我正努力学习更多。

Docker容器从另一个容器安装数据库

我试图使用Docker作为我的testing套件的一部分。 我有2个容器设置为: version: "3" services: mongo_3_4: image: mongo:3.4 command: ["mongod", "–smallfiles"] ports: – "27021:27017" frontend: build: context: ./Dockerfiles/path/ dockerfile: Dockerfile ports: – "63175:63175" frontend有能力挂载一个mongoDb,我必须给它的主机和端口的凭据,例如本地我将使用localhost | 27021 localhost | 27021和我的数据库将被挂载。 目前我能得到它的唯一方法是获取主机的IP。 我通过这样描述来实现 : $ ipconfig getifaddr en0 从而得到主机IP,并使用它从前端安装我的数据库,即192.168.1.42 | 27021 192.168.1.42 | 27021 我的问题是这个主机IP在各种环境下会有所不同,因为它被用作testing套件的一部分。 它可以用在不同操作系统的各种本地机器上,比如说Travis-ci。 有一个build议的方式来从docker中硬编码这个主机IP,或者我将不得不创build一个脚本,解决主机,做这个sudo ifconfig lo0 alias 192.168.46.49 ? 当我所做的只有2个容器,并且希望其中一个能够从另一个容器装入数据库时​​,似乎过于复杂了。

什么是定义自定义Travis作业的一种理智的方法?

目前,Travis-ci根本不支持多种语言或自定义作业。 我知道我可以在before_install钩子中安装第二种语言。 让我解释一下我的场景: 我有一个Python包,我目前unit testing通过与多种Python版本的language: python Python。 现在我想添加一个额外的Job,它使用docker来构build和运行一个容器来构buildPython包作为debian包。 一种select是只为每个工作做,但这会显着减慢testing时间。 因此,我想避免这种情况。 另一个select是在travis的构buildmatrix中使用set中的环境variables,并检查一个envvariables是否被设置,如果这样做,我会运行docker集成testing。 这两个选项都显得相当糟糕,而且很冒险。 因此,将这样一个自定义作业添加到我的Travis构buildmatrix中的一种理智的方法是什么?