首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于环境变量的podman -组合与podman运行

关于环境变量的podman -组合与podman运行
EN

Stack Overflow用户
提问于 2021-10-27 19:00:37
回答 1查看 1K关注 0票数 2

我想要一些关于环境变量的podman-composepodman的输入(我尝试使用dockerdocker-compose,结果相同),请考虑以下场景:

我在/tmp/my-binaries中有一个二进制文件/tmp/my-binaries

代码语言:javascript
复制
#!/bin/sh

echo "Hello World"

我创建了一个docker-compose.yml

代码语言:javascript
复制
version: "3"                                                                                                  
                                                                                                              
services:                                                                                                     
  test-container:                                                                                             
    image: python:3.9-slim                                                                                    
    environment:                                                                                              
      - PATH="/home/minkiu/.local/bin:/home/minkiu/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/minkiu/.pyenv/bin:/tmp/my_binaries"
    volumes:                                                                                                  
      - "/tmp/my_binaries:/tmp/my_binaries"                                                                   
    command: ["my-binary"]

在这里,我试图将我有二进制文件的目录附加到PATH中,并使用volumes键映射它。

现在我的期望是,在podman-compose up上,我应该看到Hello World,但事实并非如此,我得到:

代码语言:javascript
复制
Error: unable to start container <container-id>: executable file `my-binary` not found in $PATH: No such file or directory: OCI runtime attempted to invoke a command that was not found
125

默认情况下,podman-compose的输出相当冗长,因此我可以看到以下命令:

代码语言:javascript
复制
podman create --name=podman-test_test-container_1 --pod=podman-test --label io.podman.compose.config-hash=123 --label io.podman.compose.project=podman-test --label io.podman.compose.version=0.0.1 --label com.docker.compose.container-number=1 --label com.docker.compose.service=test-container -e PATH="/home/minkiu/.local/bin:/home/minkiu/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/minkiu/.pyenv/bin:/tmp/my_binaries" -v /tmp/my_binaries:/tmp/my_binaries --add-host test-container:127.0.0.1 --add-host podman-test_test-container_1:127.0.0.1 python:3.9-slim my-binary

因此,我获取相同的命令,并执行一个podman run

代码语言:javascript
复制
podman run --rm -e PATH="/home/minkiu/.local/bin:/home/minkiu/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/minkiu/.pyenv/bin:/tmp/my_binaries" -v /tmp/my_binaries:/tmp/my_binaries python:3.9-slim my-binary

我得到了预期的输出。

一些研究让我意识到runcreate, start and attach

所以我的问题是,为什么不通过podman-composepodman run工作?

podman run真的比podman {create,start,attach}更像吗?

干杯。

EN

回答 1

Stack Overflow用户

发布于 2021-10-30 10:45:29

在我的环境中,我遇到了与SELinux配置相关的问题。所以我用发情器( estra :Z in volumes )解决了这个问题

代码语言:javascript
复制
version: "3"

services:
  test-container:
    image: python:3.9-slim
    environment:
      - PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/tmp/my_binaries"
    volumes:
      - /tmp/my_binaries:/tmp/my_binaries:Z
    command: ["/tmp/my_binaries/my-binary"]

脚本/tmp/my_binaries/my-binary必须是可执行的。如果没有,将显示以下错误:

代码语言:javascript
复制
open executable: Permission denied: OCI permission denied

以下是完整的输出:

代码语言:javascript
复制
$ podman-compose up
using podman version: podman version 3.4.1
podman pod create --name=tests --share net
8739e69897f2b7c7d004c7ea83df3b3a5fd22db6533720bfd6bffcd0040d651e
0
podman create --name=tests_test-container_1 --pod=tests --label io.podman.compose.config-hash=123 --label io.podman.compose.project=tests --label io.podman.compose.version=0.0.1 --label com.docker.compose.container-number=1 --label com.docker.compose.service=test-container -e PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/tmp/my_binaries" -v /tmp/my_binaries:/tmp/my_binaries:Z --add-host test-container:127.0.0.1 --add-host tests_test-container_1:127.0.0.1 python:3.9-slim /tmp/my_binaries/my-binary
6560b3335990700d0cec69a103404cadab52bbfd436e90347032bb6716265e94
0
podman start -a tests_test-container_1
Hello World
0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69744137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档