把docker-compose.yml 第一行 把 version: '3.0'
改为version: '3.6'
问题如下
docker-compose 使用多重构建时 报错
当前docker-compos 版本
docker-compose version 1.25.0, build unknown
所编写的Dockerfile
FROM node:10.15 as node_build
MAINTAINER biebbwa@163.com
ADD server.tar.gz /app
COPY docker-entrypoint.sh /usr/local/bin
COPY wait-for-it.sh /usr/local/bin
RUN chmod +x /usr/local/bin/docker-entrypoint.sh && \
chmod +x /usr/local/bin/wait-for-it.sh
FROM node_build as dbserv
WORKDIR /app/server-side
ENTRYPOINT wait-for-it.sh mysql:3306 -s -t 0 -- dbserv.js ./etc/db_config
FROM node_build as gate
WORKDIR /app/server-side
ENTRYPOINT wait-for-it.sh mysql:3306 -s -t 0 -- node gate.js
FROM node_build as game
WORKDIR /app/server-side
ENTRYPOINT wait-for-it.sh mysql:3306 -s -t 0 --node game.js ./etc/config
FROM node_build as game2
WORKDIR /app/server-side
ENTRYPOINT wait-for-it.sh mysql:3306 -s -t 0 --node game2.js ./etc/config_two
FROM node_build as game3
WORKDIR /app/server-side
ENTRYPOINT wait-for-it.sh mysql:3306 -s -t 0 --node game3.js ./etc/config_therr
FROM node_build as game4
WORKDIR /app/server-side
ENTRYPOINT wait-for-it.sh mysql:3306 -s -t 0 --node game4.js ./etc/config_four
编写的 docker-compose.yml
version: '3.0'
services:
mysql:
restart: always
build:
context: mysql/
dockerfile: Dockerfile
container_name: mysql
ports:
- 3306:3306
environment:
TZ: "Asia/Shanghai"
privileged: "true"
MYSQL_ROOT_PASSWORD: "123456"
networks:
- zhdh
php-apache:
restart: always
build:
context: php-apache/
dockerfile: Dockerfile
container_name: php-apache
depends_on:
- mysql
privileged: true
volumes:
- ./php-apache/web/config/project.manifest:/var/www/html/update/project.manifest
- ./php-apache/web/config/version.manifest:/var/www/html/update/version.manifest
- ./php-apache/web/config/0d30c115-6a25-49e7-be89-2b19b49d4551.json:/var/www/html/update/res/import/0d/0d30c115-6a25-49e7-be89-2b19b49d4551.json
- ./php-apache/web/config/2777baf1-15f6-4156-8cf7-b33f1b727294.manifest:/var/www/html/update/res/raw-assets/27/2777baf1-15f6-4156-8cf7-b33f1b727294.manifest
ports:
- 80:80
networks:
- zhdh
game-gate:
restart: always
build:
context: server/
dockerfile: Dockerfile
target: gate
container_name: zhdh-server-gate
depends_on:
- mysql
- php-apache
- game-dbserv
volumes:
- ./server/server-side/etc/db_config.js:/app/server-side/etc/db_config.js
privileged: true
networks:
- zhdh
game-game:
restart: always
build:
context: server/
dockerfile: Dockerfile
target: game
container_name: zhdh-server-game
depends_on:
- mysql
- php-apache
- game-dbserv
- game-gate
volumes:
- ./server/server-side/etc/config.js:/app/server-side/etc/config.js
- ./server/server-side/etc/db_config.js:/app/server-side/etc/db_config.js
privileged: true
networks:
- zhdh
game-game2:
restart: always
build:
context: server/
dockerfile: Dockerfile
target: game2
container_name: zhdh-server-game2
depends_on:
- mysql
- php-apache
- game-dbserv
- game-gate
volumes:
- ./server/server-side/etc/config_two.js:/app/server-side/etc/config_two.js
- ./server/server-side/etc/db_config.js:/app/server-side/etc/db_config.js
privileged: true
networks:
- zhdh
game-game3:
restart: always
build:
context: server/
dockerfile: Dockerfile
target: game3
container_name: zhdh-server-game3
depends_on:
- mysql
- php-apache
- game-dbserv
- game-gate
volumes:
- ./server/server-side/etc/config_therr.js:/app/server-side/etc/config_therr.js
- ./server/server-side/etc/db_config.js:/app/server-side/etc/db_config.js
privileged: true
networks:
- zhdh
game-game4:
restart: always
build:
context: server/
dockerfile: Dockerfile
target: game4
container_name: zhdh-server-game4
depends_on:
- mysql
- php-apache
- game-dbserv
- game-gate
volumes:
- ./server/server-side/etc/config_four.js:/app/server-side/etc/config_four.js
- ./server/server-side/etc/db_config.js:/app/server-side/etc/db_config.js
privileged: true
networks:
- zhdh
game-dbserv:
restart: always
build:
context: server/
dockerfile: Dockerfile
target: dbserv
container_name: zhdh-server-dbserv
depends_on:
- mysql
- php-apache
volumes:
- ./server/server-side/etc/db_config.js:/app/server-side/etc/db_config.js
privileged: true
networks:
- zhdh
networks:
zhdh:
driver: bridge
报错内容:
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.game.build contains unsupported option: 'target'
services.game-dbserv.build contains unsupported option: 'target'
services.game-game.build contains unsupported option: 'target'
services.game-game2.build contains unsupported option: 'target'
services.game-game3.build contains unsupported option: 'target'
services.game-game4.build contains unsupported option: 'target'
services.game-gate.build contains unsupported option: 'target'
官网的说明
target
Added in version 3.4 file format
Build the specified stage as defined inside the Dockerfile. See the multi-stage build docs for details.
build:
context: .
target: prod
Version 3.4
An upgrade of version 3 that introduces new parameters. It is only available with Docker Engine version 17.09.0 and higher.
Introduces the following additional parameters:
target and network in build configurations
start_period for healthchecks
order for update configurations
name for volumes