无法使用多个节点容器构建Docker项目-TravisCI

时间:2018-12-13 21:44:02

标签: docker dockerfile travis-ci

我有一个非常简单的设置,其中有运行express的node.js端点,一个react应用和一个充当这两者的网关的nginx服务器。我为它们设置了dockerfile,如下所示:

客户端:

FROM node:alpine as builder

WORKDIR /usr/app

COPY ./package.json ./
RUN npm install
COPY ./ ./
RUN npm run build

FROM nginx
EXPOSE 3000
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/build /usr/share/nginx/html

端点:

FROM node:alpine

WORKDIR /usr/app

COPY ./package.json ./
RUN npm install
COPY ./ ./

CMD ["npm", "run", "start"]

nginx:

FROM nginx
COPY ./default.conf /etc/nginx/conf.d/default.conf

那很好,我可以docker-compose没有问题在本地运行。现在,我想使用以下travis.yml在Travis上为其设置自动构建:

sudo: required
services:
  - docker

before_install:
  - docker build -t personal-page/client-test -f ./client/Dockerfile.dev ./client

script:
  - docker run personal-page/client-test npm test -- --coverage

after_success:
  - docker build -t personal-page/client ./client
  - docker build -t personal-page/endpoint ./endpoint
  - docker build -t personal-page/nginx ./nginx
  # Log in to the docker CLI
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin
  # Push images to docker hub
  - docker push personal-page/client
  - docker push personal-page/endpoint
  - docker push personal-page/nginx

但是Travis固执地抛出: -通过存储库设置需要构建配置文件,但是config为空。

我已配置了环境变量,并且所有路径均正确。有想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,这会很有趣,但是如果有人碰到这个。一切正常,并且可以按预期工作。事实是,我在存储库中有一个单独的文件夹,在其中,所有单独的服务都与travis.yml和docker-compose一起放在了自己的文件夹中。

但是,travis.yml必须放置在存储库的根目录下。如果它在任何底层文件夹中的travis都将抛出:通过存储库设置需要构建配置文件,但是config为空。