我有一个非常简单的设置,其中有运行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为空。
我已配置了环境变量,并且所有路径均正确。有想法吗?
答案 0 :(得分:0)
好吧,这会很有趣,但是如果有人碰到这个。一切正常,并且可以按预期工作。事实是,我在存储库中有一个单独的文件夹,在其中,所有单独的服务都与travis.yml和docker-compose一起放在了自己的文件夹中。
但是,travis.yml必须放置在存储库的根目录下。如果它在任何底层文件夹中的travis都将抛出:通过存储库设置需要构建配置文件,但是config为空。