在ubuntu docker中创建用户而不是使用root

我正在基于ubuntu创建一个自定义docker映像(testing:latest).我想为流星应用程序运行一些单元测试.

FROM ubuntu:16.04
RUN apt-get update -y && \
    apt-get install -yqq --no-install-recommends apt-transport-https ca-certificates curl nodejs-legacy && \
    apt-get clean && apt-get autoclean && apt-get autoremove && \
    curl https://install.meteor.com/ | sh && \
    meteor npm install eslint eslint-plugin-react && \
    apt-get remove -y apt-transport-https ca-certificates curl && \
    rm -rf /var/lib/apt/lists/*

我正在使用dockerrunner使用gitlab CI.所以我的yml文件看起来像

stages:
  - test

lint:
  image: testing:latest
  stage: test
  script:
    - /node_modules/.bin/eslint --ext .js --ext .jsx .
  except:
    - master

unit:
  image: testing:latest
  stage: test
  script:
    - whoami
    - meteor test --driver-package=practicalmeteor:mocha-console-runner
  except:
    - master

运行whoami向我显示当前用户是root.因此流星测试未在运行,因为它不应与root一起使用

You are attempting to run Meteor as the 'root' superuser. If you are
developing,this is almost certainly *not* what you want to do and will likely
result in incorrect file permissions. However,if you are running this command
in a build process (CI,etc.),or you are absolutely sure you know what you are
doing,set the METEOR_ALLOW_SUPERUSER environment variable or pass
--allow-superuser to proceed.

Even with METEOR_ALLOW_SUPERUSER or --allow-superuser,permissions in your app
directory will be incorrect if you ever attempt to perform any Meteor tasks as
a normal user. If you need to fix your permissions,run the following command
from the root of your project:

  sudo chown -Rh <username> .meteor/local

如何使用其他用户?我必须在dockerfile中这样做吗?还是我必须在yml文件中添加一些命令?

最佳答案
您可以通过普通的Ubuntu方法RUN useradd< username>然后USER<用户名>并运行任务.

From the Docker.Io Docs

The USER instruction sets the user name or UID to use when running the image and for any RUN,CMD and ENTRYPOINT instructions that follow it in the Dockerfile.

您也可以查看此答案:Switching users inside Docker image to a non-root user

相关文章

文章浏览阅读8.8k次,点赞2次,收藏7次。本文介绍Docker Com...
文章浏览阅读1.5w次,点赞7次,收藏76次。原网提供的教程需要...
文章浏览阅读940次,点赞20次,收藏20次。通过 docker run 命...
文章浏览阅读1k次,点赞20次,收藏20次。Podman 是一个开源的...
文章浏览阅读2.1k次。请注意,这些命令需要在 Docker 主机上...
文章浏览阅读1.1k次,点赞37次,收藏40次。nacos搭建集群连接...