【发布时间】: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,其中包含 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
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