【问题标题】:How to specify build options for docker-compose build stage?如何为 docker-compose 构建阶段指定构建选项?
【发布时间】:2023-04-06 19:02:02
【问题描述】:

我有一个主要的 docker-compose.yml:

version: '3'
services:
  recognizer:  
    container_name: recognizer
    build: ./recognizer
    hostname: recognizer
    restart: always   
    ports:
      - 8084:8084
    network_mode: "host" 

我有一个文件夹 recognizer,其中包含 Dockerfiledocker-compose.yml

Dockerfile:

FROM openjdk:8

RUN mkdir -p /app/

COPY . /app

WORKDIR /app

RUN chmod 777 /app/gradlew

RUN apt-get update && apt-get install -y netcat-traditional

RUN nc -w 2 -v localhost 5432 </dev/null; status=$?; exit $status;

RUN ./gradlew build

CMD ["./gradlew", "run"]

EXPOSE 8084

docker-compose.yml

recognizer:
  build:
    context: .
  ports:
    - "8084:8084"

我的文件结构是:

.
├── docker-compose.yml
├── recognizer
│   ├── build
│   ├── build.gradle
│   ├── docker-compose.yml
│   ├── Dockerfile
│   ├── gradle
│   ├── gradlew
│   ├── gradlew.bat
│   ├── settings.gradle
│   └── src

所以,我需要在build 阶段连接到localhost。有用。如果我使用选项--network=host 构建 Docker 映像,就像这样:

docker build --network=host -t recognizer .

但我不知道如何为 docker-compose 指定构建选项。

【问题讨论】:

  • 您在寻找哪个构建选项?请澄清一下。
  • @vivekyad4v --network=host
  • @vivekyad4v 在docker-compose bundle 参考中它说只有带有“构建选项”的图像才会被导出。问题是,“什么是构建选项”和“你如何指定它”。

标签: docker build docker-compose dockerfile docker-build


【解决方案1】:

在 docker-compose.yml 中有一个设置网络的选项,如下所示:

build:
  context: ./
  dockerfile: Dockerfile
  network: host

然后docker-compose build your-service 将使用主机网络进行构建阶段。 这为我解决了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2020-07-13
    相关资源
    最近更新 更多