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

前端之家收集整理的这篇文章主要介绍了在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

猜你在找的Docker相关文章