gpt4 book ai didi

docker - 从 docker compose 内部运行 sudo 命令

转载 作者:行者123 更新时间:2023-12-02 06:55:21 24 4
gpt4 key购买 nike

我正在使用 AWS EC2 实例,并在 AWS linux 上安装了 dockerdocker-compose

现在我有一个 docker-compose.yml 文件,它正在尝试命令 mkdir -p/workspace/.m2/repositories。现在这个命令需要sudo,否则会给出权限错误。

我尝试在docker-compose中添加sudo,但它给了我一个错误

sudo: command not found

我可以手动运行此命令,并且可以在 docker-compose.yml 文件内注释此命令,但我有兴趣知道是否有任何方法可以从 内部运行此命令docker-compose.yml 文件?

最佳答案

我也许能为你提供一个解决方案。我认为您可以在自定义 Dockerfile 中扩展 strongbox 镜像来解决这个问题。

创建一个新的 Dockerfile,如下所示:

Dockerfile

FROM strongboxci/alpine:jdk8-mvn-3.5

USER root

RUN mkdir -p /workspace/.m2/repositories
RUN chown jenkins:jenkins /workspace/.m2/repositories

USER jenkins

然后使用如下内容构建图像:

docker build -t mystrongbox:01 .

最后将 docker-compose.yml 文件更新为:

docker-compose.yml

version: '2'
services:
strongbox-from-web-core:
image: mystrongbox:01
command:
- /bin/bash
- -c
- |
echo ""
echo "[NOTICE] This will take at least 2 to 5 minutes to start depending on your machine and connection!"
echo ""
echo " Open http://localhost:48080/storages to browse the repository contents."
echo ""
sleep 5
mkdir -p /workspace/.m2/repositories
mvn clean install -DskipTests -Dmaven.repo.local=/workspace/.m2/repositories
cd strongbox-web-core
mvn spring-boot:run -Dmaven.repo.local=/workspace/.m2/repositories
ports:
- 48080:48080
volumes:
- ./:/workspace
working_dir: /workspace

最后再试一次:

docker-compose up

然后您将在镜像中创建目录,并将所有权设置为 jenkins 用户。

关于docker - 从 docker compose 内部运行 sudo 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com