Docker和CircleCI 2.0的高uid错误问题

我正在努力与Circle Cibuild立持续的整合stream程。 当我把我的代码推到github上时,stream程开始了,但是停止了这个错误:

Build-agent version 0.0.4071-34fe4dc (2017-09-05T01:33:40+0000) Starting container micheleminno/elasticsearch:latest image cache not found on this host, downloading micheleminno/elasticsearch:latest latest: Pulling from micheleminno/elasticsearch 42a816b9ad19: Pull complete 5dabff016c33: Pull complete e22082c539e8: Pull complete 57845aa0da23: Pull complete 3da62a3688f0: Pull complete bce992ca3d80: Pull complete 2734c785c0d8: Pull complete 08cbf6dbba97: Pull complete 750b60032fcc: Pull complete Digest: sha256:f07025f1da82ea87e70cac194929953a245ae4560086471c90b1756693246ec4 Status: Downloaded newer image for micheleminno/elasticsearch:latest using image micheleminno/elasticsearch@sha256:f07025f1da82ea87e70cac194929953a245ae4560086471c90b1756693246ec4 Starting container mysql:5.5 using image mysql@sha256:7674d74d9f010b1500c1ae38f7af90014145ee3c92ddd65dd2e1edfd8c61270f Starting container micheleminno/db-migrations image cache not found on this host, downloading micheleminno/db-migrations latest: Pulling from micheleminno/db-migrations c89e59f636b6: Pull complete cfb692fa93ee: Pull complete d607b85c45a1: Pull complete 0150b9c56763: Pull complete CircleCI was unable to start the container because of a userns remapping failure in Docker. This typically means the image contains files with UID/GID values that are higher than Docr and CircleCI can use. Checkout our docs https://circleci.com/docs/2.0/high-uid-error/ to learn how to fix this problem. Original error: failed to register layer: Error processing tar file(exit status 1): Container ID 5924152 cannot be mapped to a host ID 

我跟着链接做了它在那里的build议,但是我找不到那个ID。

这是我的configuration圈子yml文件:

 version: 2 jobs: build: docker: - image: micheleminno/elasticsearch:latest - image: mysql:5.5 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: real-affinities-test MYSQL_USER: development MYSQL_PASSWORD: development - image: micheleminno/db-migrations environment: - NODE_ENV: development working_directory: ~/ steps: - checkout - run: name: Build real-affinities and run tests command: docker-compose -f docker-compose.test.yml -p ci up --build 

更新09/09/2017:

我遵循@FelicianoTechbuild议直接在Dockerfile中更改文件的所有权,更新导致高uid问题的项目的Dockerfile:

 FROM node:8.1.4-alpine WORKDIR /app # add package.json and run npm install before adding the rest of the files # this way, you only run npm install when package.json changes ADD package.json /app RUN npm install # add the rest of the files ADD . /app # change ownership recursively of all files RUN chown root:root . -R CMD ["./node_modules/.bin/knex", "migrate:latest"] 

但问题仍然存在。

问题在于第三个Docker镜像, micheleminno/db-migrations 。 如果您在本地运行映像,并运行此命令:

ls -lah /app/node_modules/

你会看到几个目录的用户ID超过65534.这是问题所在。 将这些ID更改为更低的值以解决此问题。