我有一个主要的 docker-compose.yml:
version: '3'
services:
recognizer:
container_name: recognizer
build: ./recognizer
hostname: recognizer
restart: always
ports:
- 8084:8084
network_mode: "host"
我有一个带有Dockerfile和docker-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
码头工人-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
所以,我需要localhost
在build
阶段连接到。有用。如果我使用 option 构建 Docker 映像--network=host
,如下所示:
docker build --network=host -t recognizer .
但我不知道如何为 docker-compose 指定构建选项。