我有一个主 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"

我的 file structure 是:

.
├── 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指定构建选项 .