随笔 - 170  文章 - 1  评论 - 5  阅读 - 27万 

转: 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.

 

posted on   swing07  阅读(690)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示