转: https://stackoverflow.com/questions/56082506/docker-compose-build-with-new-tag
I have a docker-compose which looks like:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | version: '3.2' services: jobsaf-server: build: context: . /application dockerfile: Dockerfile.production container_name: jobsaf-server env_file: - . /application/ . env tty : true depends_on: - "redis" - "mongo" links: - mongo - redis volumes: - . /application/server : /var/www/app/jobsaf-website/server - . /application/public/assets : /var/www/app/jobsaf-website/public/assets - . /application/uploads : /var/www/app/jobsaf-website/uploads - . /application/sitemaps : /var/www/app/jobsaf-website/sitemaps - . /application/rss : /var/www/app/jobsaf-website/rss - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" nginx: image: nginx:stable tty : true env_file: - ./. env environment: - NGINX_HOST=${APP_HOST} - NGINX_PORT=${APP_PORT} - PUID=1001 - PGID=1001 - TZ=Asia /Kabul links: - jobsaf-server volumes: - . /nginx/default .conf: /etc/nginx/conf .d /default .conf - . /nginx/ssl/star_jobs_af .pem: /etc/ssl/star_jobs_af .pem - . /nginx/ssl/jobs .af.key: /etc/ssl/jobs .af.key - . /nginx/ssl/star_jobs_af .crt: /etc/ssl/star_jobs_af .crt ports: - "80:80" - "443:443" mongo: image: mongo:latest container_name: mongo tty : true env_file: - ./. env volumes: - "db-data:/data/db" environment: - MONGO_INITDB_ROOT_USERNAME=${DB_USER} - MONGO_INITDB_ROOT_PASSWORD=${DB_PASS} - MONGO_INITDB_DATABASE=admin ports: - "0.0.0.0:27017:27017" redis: image: redis container_name: redis tty : true volumes: db-data: # - /data/db networks: front-tier: back-tier: |
t build jobsaf-server:latest
by default.
what I want is to keep the old tag and build the new one.
let say, while building the images I should pass something similar to this
docker-compose -f docker-compose.production --tag=1.0.1
the above command should build for me and image with tag jobsaf-server:1.0.1
1 2 3 4 5 6 7 8 | version: '3.2' services: jobsaf-server: image: jobsaf-server:${TAG} build: context: . /application dockerfile: Dockerfile.production ... |
The best way to supply the tag is with a .env file like this:
TAG=1.0.1
To build:
Run TAG=1.0 docker-compose build
it will create jobsaf-server:1.0
To Up:
Run TAG=1.0 docker-compose up -d
To down:
Run TAG=1.0 docker-compose down
Note: we can add TAG
to .env
file also by default.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!