小编Eri*_*kMD的帖子

通过 docker-compose 将变量从 .env 文件传递​​到 dockerfile

project\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x82   \xe2\x94\x82   ...\n\xe2\x94\x82   \xe2\x94\x82   Dockerfile\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80prod.env\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80docker-compose.yml\n
Run Code Online (Sandbox Code Playgroud)\n

我的 docker-compose 看起来像这样:

\n
services:\n   app:\n      build:\n         context: .\\app\n         args:\n            ARG1: val1\n            ARG2: val2\n      env_file:\n         - prod.env\n
Run Code Online (Sandbox Code Playgroud)\n

但我也尝试过这个:

\n
services:\n   app:\n      build:\n         context: .\\app\n         args:\n            ARG1: ${ARG1}\n            ARG2: ${ARG2}\n      env_file:\n         - prod.env\n
Run Code Online (Sandbox Code Playgroud)\n

我的 prod.env 文件如下所示:

\n
ARG1 = 'val1'\nARG2 = 'val2'\n
Run Code Online (Sandbox Code Playgroud)\n

但我也尝试过这个:

\n
ARG1=val1\nARG2=val2\n
Run Code Online (Sandbox Code Playgroud)\n

我希望将 args 的值或 prod.env 文件中的值传递给 dockerfile。

\n

这就是我试图得到的:

\n
ARG ARG1\nARG ARG2\n\nRUN echo ${ARG1}\nRUN echo ${ARG2}\n
Run Code Online (Sandbox Code Playgroud)\n
ENV ARG1 ${ARG1}\nENV ARG2 ${ARG2}\n\nRUN echo ${ARG1}\nRUN echo …
Run Code Online (Sandbox Code Playgroud)

windows powershell docker dockerfile docker-compose

8
推荐指数
2
解决办法
9907
查看次数

如何使用 GitHub API 关闭问题

我正在尝试找出如何通过 Github API 关闭问题。

具体来说,我尝试通过 pyGitHub 和 python 来完成此操作,但知道如何通过 GitHub API 关闭问题就足以让我弄清楚。

有人能指出我正确的方向吗?我确信这很简单,但我在文档中找不到它

python github issue-tracking github-api pygithub

6
推荐指数
1
解决办法
2197
查看次数

从高山图像中捕获 SIGTERM

我试图从 docker 实例捕获 SIGTERM 信号(基本上是在调用 docker stop 时),但找不到方法,因为我执行的每次尝试都有不同的结果。

以下是我的设置

Dockerfile

FROM gitlab/gitlab-runner:alpine

COPY ./start.sh /start.sh

ENTRYPOINT ["/start.sh"]
Run Code Online (Sandbox Code Playgroud)

启动文件

FROM gitlab/gitlab-runner:alpine

COPY ./start.sh /start.sh

ENTRYPOINT ["/start.sh"]
Run Code Online (Sandbox Code Playgroud)

现在我构建 docker 镜像

$ docker build -t dockertrapcatch .
Sending build context to Docker daemon  51.71kB
Step 1/3 : FROM gitlab/gitlab-runner:alpine
 ---> 9f8c39873bee
Step 2/3 : COPY ./start.sh /start.sh
 ---> Using cache
 ---> ebb3cac0c509
Step 3/3 : ENTRYPOINT ["/start.sh"]
 ---> Using cache
 ---> 7ab67fe5a714
Successfully built 7ab67fe5a714
Successfully tagged dockertrapcatch:latest
Run Code Online (Sandbox Code Playgroud)

运行泊坞窗

#!/bin/bash

deregister_runner() {
    echo …
Run Code Online (Sandbox Code Playgroud)

sigkill docker dockerfile gitlab-ci-runner alpine-linux

5
推荐指数
1
解决办法
6241
查看次数

如何使 docker 命令的输出静音

我已经编写了一个脚本来为我运行一些 docker 命令,我想静默这些命令的输出。例如docker load,docker rundocker stop

docker load确实有一个标志--quiet,看起来它应该做我想要的事情,但是当我尝试使用它时,它仍然打印出来Loaded image: myimage。即使这个标志对我有用,并不是所有的 docker 命令都有这个标志可用。我曾尝试使用重定向,docker run ... 2>&1 /dev/null但是重定向参数被解释为 docker 容器的命令参数,这对于其他 docker 命令似乎也是相同的,例如tar -Oxf myimage.img.tgz | docker load 2>&1 /dev/null假设重定向是参数并决定打印出命令用法。

shell stdout stderr io-redirection docker

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

Docker-compose tagging and pushing

I have a few docker containers that I try to sync with docker-compose (currently are being run by bash scripts). I'm looking for a way to tag and push them to our ec2 based dockerhub (private server).

Using simply docker we did something like this (for each container):

$ docker build -f someDockerfile -t some
$ docker tag some <docker_hub_server>/some
$ docker push <docker_hub_server>/some
Run Code Online (Sandbox Code Playgroud)

I'm trying to replicate this in docker-compose. I tried a few things but this one …

docker docker-compose

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

Bash 脚本命令等待 docker-compose 进程完成后再继续

我们有一个安装程序的 bash 脚本,其中包括运行docker-compose文件。其中一个服务 RabbitMQ 需要一些时间来加载,我需要一个命令来等待它在加载其他服务之前加载。我们正在使用sleep命令,但我们的客户使用不同的笔记本电脑,因此加载某些命令比其他笔记本电脑需要更长的时间。有没有办法保持它直到它完成加载服务,然后再继续下一个而不使用sleep命令?我已经包含了下面的脚本部分。谢谢!

# Execute applications
cd /opt/program
docker-compose up -d
echo "waiting for message queue..."
sleep 15

echo "starting ingest manager"

cd /opt/program/scripts
chmod +x start-manager.sh
./start-manager.sh &
Run Code Online (Sandbox Code Playgroud)

linux bash docker docker-compose

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

Dockerfile - npm:未找到

我想为 reactjs 应用程序创建一个开发环境。我是 Docker 的新手,一直在尝试使用 Docker 创建环境。下面是我的 Dockerfile 代码。

# Base node image
FROM node

# create working directory
ADD ./code /usr/src/app
WORKDIR /usr/src/app

# add node_modules path to environment
ENV PATH /usr/src/app/node_modules/.bin:PATH

# copy and install dependencies
COPY ./code/package.json /usr/src/app/package.json
RUN npm install --quiet
RUN npm install react-scripts@1.1.1 -g --silent

# start app
# CMD ["npm","start"]
Run Code Online (Sandbox Code Playgroud)

但是,我在第 行收到错误“npm:未找到” RUN npm install --quiet

npm docker reactjs dockerfile

3
推荐指数
1
解决办法
4173
查看次数

Python + Docker + 找不到模块

我有一个使用 Python 和 Docker 实现的功能。

当我运行时docker-compose up -d,我能够成功构建映像,并且整个文件夹都被复制到 Docker 容器中,并且我能够在容器中看到复制的文件。

但是,在运行 Python 文件时,出现错误

ModuleNotFoundError: No module named "bank_transactions"

在文件 main_transactions.py 中,我导入了常量文件,我在下面的屏幕截图中显示了文件夹结构。

截屏

当我通过 PyCharm 运行该应用程序时,它运行良好,没有任何问题。

下面是 Docker 文件配置。

docker-compose.yml

version: "3.6"

services:
  app :
    build: .
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_USERNAME: root
      POSTGRES_PASSWORD: root
      POSTGRES_DB: testdb
    ports:
      - 5432:5432 
Run Code Online (Sandbox Code Playgroud)

文件

FROM python:3.6

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN mkdir /code

WORKDIR /code

COPY . /code/

RUN pip install -r requirements.txt 

CMD [ "python", "/Transactions/bank_transactions/main_transactions.py" ]
Run Code Online (Sandbox Code Playgroud)

错误日志: …

python-3.x docker dockerfile

3
推荐指数
1
解决办法
3732
查看次数

OCaml 模块中的抽象类型

我在 OCaml 中有非常简单的签名和模块:

module type S = sig
  type t 
  val y : t
end;;
Run Code Online (Sandbox Code Playgroud)

module M2 : S = struct
  type t = int
  let x = 1
  let y = x+2
end;;
Run Code Online (Sandbox Code Playgroud)

我不能使用像

M2.y
Run Code Online (Sandbox Code Playgroud)

获得3除非我指定的模块

module M2 : S with type t = int = struct ...
Run Code Online (Sandbox Code Playgroud)

为什么会这样?已经有说法了type t = int

ocaml module signature

2
推荐指数
1
解决办法
869
查看次数

在Coq Module系统中导入&lt;Module&gt;与Include &lt;Module&gt;

Include M1M说另一个模块内部的确切语义是什么?与Import M1在模块M内部进行操作有何不同?更准确地说,以下命令的语义是什么:

Module Type M := M1 <+ M2 <+ M3.
Run Code Online (Sandbox Code Playgroud)

coq

2
推荐指数
1
解决办法
279
查看次数