Docker和CircleCI 2.0出现高uid错误问题

Docker和CircleCI 2.0出现高uid错误问题,docker,circleci,Docker,Circleci,我正试图与Circle Ci建立一个持续的集成流程。当我将代码推送到github时,流启动,但会因以下错误而停止: 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/elastics

我正试图与Circle Ci建立一个持续的集成流程。当我将代码推送到github时,流启动,但会因以下错误而停止:

    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
我按照它的指示去做,但是我找不到任何有这个ID的东西

这是我的配置圆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
2017年9月9日更新:

我按照@FelicianoTech的建议直接更改Dockerfile中文件的所有权,更新项目的Dockerfile,这会导致高UID问题:

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映像,
Michelemino/db迁移。如果在本地运行映像,并运行以下命令:

ls-lah/app/node\u模块/


您将看到几个目录的用户ID高于65534。这就是问题所在。将这些ID更改为较低的值以解决此问题。

首先,我认为您应该阅读CircleCI上的Docker文档。这里有很多看起来不正确的地方。重写某些内容后,也许您可以完全避免此问题。谢谢,我会按照您的建议执行。我查找、研究并尝试了一点,更新了config.yml文件,但仍然得到相同的错误。如果上面的CircleCI配置是最新的?我试着拉第一张图片,那部分对我很有用。对于Docker Compose,您需要安装\u remote\u Docker。不管我怎么做,请查看我的答案。谢谢,我找到了这些高ID并更改了它们。但是,当我再次使用:docker run-it Michelemino/db migrations sh运行映像时,它们又回到了原来的高UID。也许我的docker知识中缺少了一些东西..需要在Dockerfile中更改ID。通过
docker exec
或类似方式更改它们只会在运行的容器中更改它们。该容器最终会被重新制作,这会导致相同的问题再次出现,除非您在Dockerfile中修复它。感谢您的回复,请查看上述更新。