标签: dockerhub

在Dockerfile中,如何更新PATH环境变量?

我有一个从源代码下载和构建GTK的dockerfile,但以下行没有更新我的图像的环境变量:

RUN PATH="/opt/gtk/bin:$PATH"
RUN export PATH
Run Code Online (Sandbox Code Playgroud)

我读到我应该使用ENV来设置环境值,但以下指令似乎也不起作用:

ENV PATH /opt/gtk/bin:$PATH

这是我的整个Dockerfile:

FROM ubuntu
RUN apt-get update
RUN apt-get install -y golang gcc make wget git libxml2-utils libwebkit2gtk-3.0-dev libcairo2 libcairo2-dev libcairo-gobject2 shared-mime-info libgdk-pixbuf2.0-* libglib2-* libatk1.0-* libpango1.0-* xserver-xorg xvfb

# Downloading GTKcd
RUN wget http://ftp.gnome.org/pub/gnome/sources/gtk+/3.12/gtk+-3.12.2.tar.xz
RUN tar xf gtk+-3.12.2.tar.xz
RUN cd gtk+-3.12.2

# Setting environment variables before running configure
RUN CPPFLAGS="-I/opt/gtk/include"
RUN LDFLAGS="-L/opt/gtk/lib"
RUN PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig"
RUN export CPPFLAGS LDFLAGS PKG_CONFIG_PATH
RUN ./configure --prefix=/opt/gtk
RUN make
RUN make install

# running ldconfig after …
Run Code Online (Sandbox Code Playgroud)

docker dockerhub

295
推荐指数
4
解决办法
18万
查看次数

如何在Docker Postgres的脚本中创建用户/数据库

我一直在尝试通过创建自定义用户和数据库来为开发postgres实例设置容器.我正在使用官方的postgres docker图像.在文档中,它指示您在/docker-entrypoint-initdb.d/文件夹中插入一个bash脚本,以使用任何自定义参数设置数据库.

我的bash脚本:make_db.sh

su postgres -c "createuser -w -d -r -s docker"
su postgres -c "createdb -O docker docker"
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM library/postgres

RUN ["mkdir", "/docker-entrypoint-initdb.d"]
ADD make_db.sh /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

我从docker logs -f db(db是我的容器名称)得到的错误是:

createuser:无法连接到数据库postgres:无法连接到服务器:没有这样的文件或目录

似乎/docker-entrypoint-initdb.d/在postgres启动之前正在执行文件夹内的命令.我的问题是,如何使用官方postgres容器以编程方式设置用户/数据库?有没有办法用脚本执行此操作?

postgresql bash docker dockerhub

179
推荐指数
8
解决办法
17万
查看次数

Docker:exec /usr/bin/sh:exec 格式错误

我创建了一个自定义 docker 映像并将其推送到 docker hub,但是当我在 CI/CD 中运行它时,它给了我这个错误。

exec /usr/bin/sh: exec format error

在哪里 :

Dockerfile

FROM ubuntu:20.04
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN apt-get install -y python3-pip
RUN pip3 install robotframework
Run Code Online (Sandbox Code Playgroud)

.gitlab-ci.yml

robot-framework:
  image: rethkevin/rf:v1
  allow_failure: true
  script:
    - ls
    - pip3 --version
Run Code Online (Sandbox Code Playgroud)

输出

Running with gitlab-runner 15.1.0 (76984217)
  on runner zgjy8gPC
Preparing the "docker" executor
Using Docker executor with image rethkevin/rf:v1 ...
Pulling docker image rethkevin/rf:v1 ...
Using docker image sha256:d2db066f04bd0c04f69db1622cd73b2fc2e78a5d95a68445618fe54b87f1d31f for rethkevin/rf:v1 with digest rethkevin/rf@sha256:58a500afcbd75ba477aa3076955967cebf66e2f69d4a5c1cca23d69f6775bf6a …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci dockerhub gitlab-ci-runner

109
推荐指数
5
解决办法
19万
查看次数

如何将参数传递给Dockerfile?

我在a中使用RUN指令Dockerfile来安装rpm

RUN yum -y install samplerpm-2.3
Run Code Online (Sandbox Code Playgroud)

但是,我想传递值"2.3"作为参数.我的RUN指令应该类似于:

RUN yum -y install samplerpm-$arg
Run Code Online (Sandbox Code Playgroud)

哪里 $arg=2.3

docker dockerhub dockerfile docker-registry docker-compose

104
推荐指数
2
解决办法
10万
查看次数

查找最新版本的 docker 镜像的实际版本

docker pull jaegertracing/jaeger-agent:latest

Jaeger 只是为了说明。但我的问题更笼统。上面的命令从 docker-hub 中提取docker-hublatest的版本jaeger-agent

docker-hub 页面是:https://hub.docker.com/r/jaegertracing/jaeger-agent

我的问题是如何找到 的实际版本latest

我查看了这里的标签,但没有太多信息: https ://hub.docker.com/r/jaegertracing/jaeger-agent/tags

我还尝试在拉取图像后进行操作inspect,但无法获得必要的详细信息。

docker image inspect jaegertracing/jaeger-agent:latest

我们可以从哪里获得这些信息?

docker dockerhub

42
推荐指数
2
解决办法
4万
查看次数

Docker Hub自动构建 - 标记

在Docker Hub上指定自动构建时,我可以设置一些设置(Type("分支"或"标记")Name,Dockerfile LocationDocker Tag Name).但不幸的是,我没有找到任何文件.

我假设,当我选择Type'Branch'并输入a时Name,这是我正在使用的GitHub/BitBucket上的git存储库中的分支,这Docker Tag Name导致将标记分配给创建的图像.

我玩了一下,发现了一些我不清楚的事情 - 但我希望你能向我解释一下.

  • 添加多个条目会导致只分配一个标记.我Docker Tag Name在第一个中使用了'Branch','master'和'/'以及'latest',在第二个中使用'v1'.但只有'v1'用作标签.

  • 使用Type"标签"不会导致不同的结果.我认为如果用这个值标记git提交,这可能只会构建一个图像.这种类型是什么?

我一直在寻找能够将标签"最新"分配给最新版本的能力,并使用像v1,v2,v3等方案来进行旧版本的构建,就像我在本地构建图像时所做的那样.

docker dockerhub

35
推荐指数
4
解决办法
1万
查看次数

Docker官方注册表(Docker Hub)URL

泊坞中心官方网站已移到https://registry.hub.docker.comhttps://hub.docker.com/.

如果我尝试docker pull从URL中的图像:docker pull registry.hub.docker.com/busybox它显示:

registry.hub.docker.com/busybox: this image was pulled from a legacy registry.  
Important: This registry version will not be supported in future versions of docker.
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用docker pull registry.hub.docker.com/busybox.

它无法拉动图像.

使用时的情况相同 curl -k https://registry.hub.docker.com/v1/repositories/busybox/tags

docker dockerhub

35
推荐指数
6
解决办法
7万
查看次数

图像是否可以有多个标签?

当我将新图像推送到repo时,我希望它有两个标签,例如0.2latest.这将允许总是通过使用latest标签和特定版本通过使用0.2标签来拉取最新图像版本.码头工具有可能吗?

有没有解决方法?我看到的唯一解决方案就是两次单独推动......

docker dockerhub

32
推荐指数
4
解决办法
3万
查看次数

Docker hub与docker cloud

我在docker hub和docker cloud之间有一点混乱.我有Docker镜像,我需要在客户端服务器中安装并运行容器.我相信这可以使用docker hub完成,它允许在我的私有存储库中推送和拉出docker镜像.那么docker cloud的用途是什么?它是将图像存储在我自己的aws帐户中而不是存储在docker hub中吗?容器需要安装在客户端服务器中,那么我需要使用什么,docker hub或docker cloud?

docker dockerhub docker-cloud

31
推荐指数
1
解决办法
7389
查看次数

检查docker hub上是否已存在image:tag组合

作为bash脚本的一部分,我想检查docker hub上是否存在特别的docker image:tag组合.此外,它将是一个私人存储库.

即伪代码如下:

tag = something
if image:tag already exists on docker hub:
    Do nothing
else
    Build and push docker image with that tag
Run Code Online (Sandbox Code Playgroud)

bash docker dockerhub

30
推荐指数
5
解决办法
2万
查看次数