首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏实战docker

    docker与gosu

    前面主要讲gosu的用法,但是为什么要用gosu呢? 接下来通过实战对比来看看sudo的问题在哪: 执行以下命令创建一个容器: docker run --rm gosu/alpine gosu root ps aux 上述命令会启动一个安装了gosu的linux 如何在镜像中安装gosu 前面的redis例子中,我们看到docker-entrypoint.sh中用到了gosu,那么是在哪里安装了gosu呢? /bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ +x /usr/local/bin/gosu; \ gosu nobody true; \ \ apt-get purge -y --auto-remove $fetchDeps 至此,gosu

    4.3K51发布于 2019-07-02
  • 来自专栏我的小碗汤

    docker 实用工具 gosu 和 su-exec 实践

    gosu 和 su-exec gosu 的 github 仓库地址: https://github.com/tianon/gosu 用法: $ gosu Usage: . gosu 版本)。 "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ wget -O /usr/local /bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ /bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \

    2.3K20编辑于 2023-03-20
  • 来自专栏写字母的代码哥

    Elasticsearch2.3官方Dockerfile解析

    /gosu user-spec command [args], # 这样可以用指定的用户,运行指定的程序,gosu版本是GOSU_VERSION # wget下载,mktemp -d创建临时目录,gpg 去公钥服务器下载公钥并校验 # 增加gosu执行权限,gosu nobody true切换到nobody用户,安全 ENV GOSU_VERSION 1.7 RUN set -x \ && wget - O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture )" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION /usr/local/bin/gosu \ && rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu

    73720发布于 2020-09-23
  • 来自专栏后端云

    一步步学KubeVirt CI (3) - gosu在容器中的使用

    gosu在容器中的使用 容器中使用gosu的起源来自安全问题,容器中运行的进程,如果以root身份运行的会有安全隐患,该进程拥有容器内的全部权限,更可怕的是如果有数据卷映射到宿主机,那么通过该容器就能操作宿主机的文件夹了 gosu类似linux中的su和sudo命令。但是既然有了su和sudo为何还要做出一个gosu来。 因为: gosu启动命令时只有一个进程,所以docker容器启动时使用gosu,那么该进程可以做到PID等于1; sudo启动命令时先创建sudo进程,然后该进程作为父进程去创建子进程,1号PID被sudo 官方仓库有一段回复 https://github.com/tianon/gosu#gosu su & gosu $ docker run -it --rm ubuntu:trusty su -c 'exec R+ 02:22 0:00 ps aux $ docker run -it --rm -v $PWD/gosu-amd64:/usr/local/bin/gosu:ro ubuntu:trusty

    1.5K31编辑于 2022-11-25
  • 来自专栏数据猿

    Gosu.ai获190万美元,用于自动化游戏培训建议

    【数据猿导读】Game Insight创始人Alisa Chumachenko成立了Gosu.ai。 Gosu.ai位于立陶宛,是一个培训实验室,将AI和个性化建议结合起来,旨在为未来的电竞运动员提供训练技巧。 她认为这是一个很大的市场,随即创立了Gosu.ai。Gosu.ai正在开发一个AI助理,帮助玩家更加智能,提高游戏技能。 Gosu.ai可以自动检查一些基本信息,比如在比赛时是否频繁使用热键。 Chumachenko表示:“如果你是一名铁杆玩家,你总是需要改进,Gosu.ai可以对你进行全面的分析,从而建立你的技能。 Gosu.ai早期由Gagarin Capital提供资金支持。Gagarin Capital是一家位于硅谷的天使投资公司,专注于AI投资。 Gosu.ai有15名员工,在一年以前开始正式经营。

    76080发布于 2018-04-25
  • 来自专栏运维经验分享

    Dockerfile安装的几个实例 原

    "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \     && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION /usr/local/bin/gosu \     && rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \     && chmod +x /usr/local "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION

    1.1K30发布于 2019-03-11
  • 来自专栏Cyylog技术

    Docker_002

    for easy step-down from root # https://github.com/tianon/gosu/releases ENV GOSU_VERSION 1.11 RUN set "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ wget -O /usr/local /bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ /usr/local/bin/gosu; \ gpgconf --kill all; \ rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ \ # clean ; \ # verify that the binary works gosu --version; \ gosu nobody true ENV REDIS_VERSION 5.0.8 ENV

    70050发布于 2020-08-19
  • 来自专栏Docker

    【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)

    ├── gosu.asc ├── my.cnf └── mysql-shell-8.0.12-1.el7.aarch64.rpm docker build --pull --platform=linux =1.14 # 此处提前将 gosu 原文件下载好,缩短构建时间 # wget -O gosu.asc https://github.com/tianon/gosu/releases/download/ 1.14/gosu-arm64.asc # wget -O gosu https://github.com/tianon/gosu/releases/download/1.14/gosu-arm64 COPY gosu.asc gosu /usr/local/bin RUN set -eux; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver /usr/local/bin/gosu; rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; chmod +x /usr/local/bin/gosu; gosu

    2.1K10编辑于 2024-09-02
  • 来自专栏Cyylog技术

    Docker_001

    for easy step-down from root ENV GOSU_VERSION 1.7 RUN set -x \ && apt-get update && apt-get install "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/ /usr/local/bin/gosu \ && gpgconf --kill all \ && rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true \ && apt-get purge -y --auto-remove ca-certificates

    63930发布于 2020-08-19
  • 来自专栏JetpropelledSnake

    Docker学习笔记之docker volume 容器卷的那些事(二)

    gosu 以非 root 用户执行命令。 这里需要自行书写 Dockerfile 构建镜像。 Dockerfile: FROM prom/prometheus:v2.0.0 USER root RUN mkdir -p /usr/local/bin \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64" \ && chmod +x /usr/local/bin/gosu /bin/sh chown -R nobody /prometheus gosu nobody prometheus "$@" 这里提到了 gosu 工具,用它来替换 sudo 从某种意义上解决了信号传递和

    1.5K20发布于 2019-03-19
  • 来自专栏运维之美

    酷软趣站 | 23 个超好用的终端效率工具(GO 系列)

    gosu 临时切换到指定用户运行特定命令,方便测试权限问题。 https://github.com/tianon/gosu $ gosu Usage: . /gosu user-spec command [args] eg: ./gosu tianon bash . /gosu nobody:root bash -c 'whoami && id' ./gosu 1000:1 id mmh 支持无限跳板机登录的 ssh 小工具。

    1.2K30发布于 2021-05-18
  • 来自专栏JetpropelledSnake

    Docker学习笔记之通过 Dockerfile 创建镜像

    for easy step-down from root # https://github.com/tianon/gosu/releases ENV GOSU_VERSION 1.10 RUN set "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ wget -O /usr/ local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc /usr/local/bin/gosu; \ gpgconf --kill all; \ rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ chmod +x /usr/local/bin/gosu; \ gosu nobody true; \ \ apt-get purge -y --auto-remove $fetchDeps

    89830发布于 2019-03-14
  • 来自专栏Linux Doc

    构建arm架构的MySQL容器镜像(MySQL5.6)

    准备相关文件包将mysql源码包mysql-5.6.51.tar、MySQL配置文件my.cnf、容器入口文件docker-entrypoint.sh、gosu-install这4个文件一起打包成tar 安装脚本gosu用来切换到普通用户启动进程,sudo替代品。 我们提前创建安装脚本gosu-install,后面会用。官方是将gosu安装脚本写入了Dockerfile,我们将其剥离出来,写成一个独立脚本,给Dockerfile瘦身。 "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$gosuArch"; \ chmod +x /usr/local /bin/gosu; \ gosu --version; \ gosu nobody true (4) 容器入口文件docker-entrypoint.sh

    49010编辑于 2025-12-13
  • 来自专栏颇忒脱的技术博客

    Java程序制作Docker Image推荐方案

    MySQL的时区处理 数据库时区那些事儿 - Oracle的时区处理 Container内的程序以非root用户启动 在Docker Image内部,我们应该使用非root用户启动程序,这需要使用到gosu gosu的Dockerfile指南在这里。 记得要根据不同的基础Image选择适合的安装方式。 如果你用的是openjdk:<version>-slim或者openjdk:<version>,那么在Image里安装gosu的方式是这样: RUN set -ex; \ apt update; \ apt install -y gosu; \ rm -rf /var/lib/apt/lists/*; \ # verify that the binary works gosu 参考文档 Dockerfile best practice Docker ENTRYPOINT Postgres Dockerfile & script MySQL Dockerfile & script gosu

    1.8K40发布于 2018-10-19
  • 来自专栏全栈工程师修炼之路

    用户查询操作权限命令

    Docker容器中建议使用gosu而不是sudo; 2.对于脚本执行有严格权限要求的场景; 项目地址:https://github.com/tianon/gosu 安装说明: #CentOS GOSU_VERSION =1.14 wget https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64 -O /usr/local/ bin/gosu wget https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64.asc -O /tmp gpg --batch --verify /tmp/gosu.asc /usr/local/bin/gosu chmod +x /usr/local/bin/gosu # debian # gosu awk -F- '{ print $NF }').asc as gosu.asc 基础语法: $ gosu Usage: .

    4.2K10编辑于 2022-09-28
  • 来自专栏devops探索

    docker—Dockerfile指令详解

    redis && useradd -r -g redis redis USER redis RUN [ "redis-server" ] 如果想在执行期间改变身份,不要使用su或sudo,建议使用gosu 1 2 3 4 5 6 7 8 9 # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 RUN groupadd -r redis && useradd -r -g redis redis # 下载 gosu RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/ gosu-amd64 " \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true # 设置 CMD,并以另外的用户执行 CMD [ "exec", "gosu", "redis

    1K20发布于 2020-07-31
  • 来自专栏YP小站

    Dockerfile 优化

    gosu FROM alpine:3.11.5 RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \ && apk add --no-cache gosu 参考: https://blog.csdn.net/boling_cavalry/article/details/93380447 postgres' ]; then chown -R postgres "$PGDATA" if [ -z "$(ls -A "$PGDATA")" ]; then gosu postgres initdb fi exec gosu postgres "$@" fi exec "$@" 八、其他建议 1、设置时区 FROM alpine:3.11.5

    88740发布于 2021-11-26
  • 来自专栏小手冰凉

    Dockerfile 指令

    建议使用 gosu。 # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 RUN groupadd -r redis && useradd -r -g redis redis # 下载 gosu RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true # 设置 CMD,并以另外的用户执行 CMD [ "exec", "gosu", "redis", "

    79030发布于 2020-08-06
  • 来自专栏后端开发随笔

    Docker实践之03-Dockerfile指令详解

    建议使用gosu 。 # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 RUN groupadd -r redis && useradd -r -g redis redis # 下载 gosu RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" && chmod +x /usr/local/bin/gosu && gosu nobody true # 设置 CMD,并以另外的用户执行 CMD [ "exec", "gosu", "redis", "redis-server

    1.3K31发布于 2019-06-27
  • 来自专栏linux技术

    docker | dockerfile指令详解

    -user redis -exec chown redis '{}' + exec gosu redis "$0" "$@" fi exec "$@" 该脚本的内容就是根据 CMD 的内容来判断,如果是 建议使用 gosu 不过更推荐的还是 上文 中提到过的通过 ENTRYPOINT 脚本的方式 使用 gosu 示例 # 建立 redis 用户,并使用 gosu 换另一个用户执行命令 RUN groupadd -r redis && useradd -r -g redis redis # 下载 gosu RUN wget -O /usr/local/bin/gosu "https://github.com/ tianon/gosu/releases/download/1.12/gosu-amd64" \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true # 设置 CMD,并以另外的用户执行 CMD [ "exec", "gosu", "redis", "redis-server" ] HEALTHCHECK 健康检查 格式: HEALTHCHECK

    2.5K41编辑于 2023-04-17
领券