docker-compose up
, создаю набор контейнеровdocker compose stop client_container
docker rmi -f rest-api-client
docker build -t rest-api-client .
docker-compose start rest-api-client
, у меня подтягивается старый контейнерclient:
container_name: client_container
image: rest-api-client
docker compose up -d
docker compose up -d --build rest-api-client
services:
server:
container_name: server_container
build:
context: ./server
ports:
- 3000:3000
networks:
- ${NETWORK}
restart: unless-stopped
build:
context: .
dockerfile: ./server/dockerfile
docker compose stop rest-api-client
no such service: rest-api-client
rest-api-client
, когда такое название больше нигде не фигурируетнужно еще указывать какие-нибудь важные свойства
Почему у меня такая сборка не сработала?
context
каталоге.не понял откуда он решил, что образ теперь надо так называть rest-api-client
docker compose down --volumes --remove-orphans
или docker system prune -af
- это сотрёт вообще всё, что не задействовано в данный момент. docker compose down --volumes --remove-orphans
и docker system prune -af
docker ps
docker compose stop rest-api-client
не останавливает клиентский контейнерCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2e8368488d dpage/pgadmin4 "/entrypoint.sh" 27 seconds ago Up 26 seconds 443/tcp, 0.0.0.0:5480->80/tcp, :::5480->80/tcp pgadmin_container
4a0fa57e7f3b postgres "docker-entrypoint.s…" 27 seconds ago Up 26 seconds (healthy) 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres_container
afc343ce1223 nginx "/docker-entrypoint.…" 27 seconds ago Up 25 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx_container
8acf7ef5c239 rest-api-server "docker-entrypoint.s…" 27 seconds ago Up 26 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp server_container
4ca71c3dfa68 rest-api-client "docker-entrypoint.s…" 27 seconds ago Up 26 seconds 0.0.0.0:5173->5173/tcp, :::5173->5173/tcp client_container
И теперь невозможно остановить один из контейнеров
server
, соответственно команда будет такой docker compose stop server
Но всё равно возвращаются те же названия при docker ps
server
и client
заработало, спасибо!docker-compose.yml
version: '3.5'
services:
postgres:
container_name: postgres_container
image: postgres
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
PGDATA: /data/postgres
volumes:
- ./postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
- ./postgres/setup.sql:/docker-entrypoint-initdb.d/setup.sql
- postgres:/data/postgres
ports:
- ${POSTGRES_PORT}:${POSTGRES_PORT}
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
interval: 1s
timeout: 1s
retries: 60
networks:
- ${NETWORK}
restart: always
pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: admin@mail.ru
PGADMIN_DEFAULT_PASSWORD: password
PGADMIN_CONFIG_SERVER_MODE: 'False'
volumes:
- pgadmin:/var/lib/pgadmin
ports:
- 5480:80
networks:
- ${NETWORK}
restart: unless-stopped
nginx:
container_name: nginx_container
image: nginx
ports:
- 80:80
- 443:443
networks:
- private
- public
restart: always
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/conf.d/:/etc/nginx/conf.d/:ro
- ./nginx/templates/:/etc/nginx/templates/:ro
server:
container_name: server_container
build:
context: ./server
# image: rest-api-server
ports:
- 3000:3000
networks:
- ${NETWORK}
restart: unless-stopped
client:
container_name: client_container
build:
context: ./client
ports:
- 5173:5173
networks:
- ${NETWORK}
restart: unless-stopped
networks:
private:
driver: bridge
internal: true
public:
driver: bridge
volumes:
postgres:
pgadmin:
client dockerfile
FROM node:20
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
server dockerfile
FROM node:20
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
RUN npm run build
CMD ["npm", "start"]
docker compose stop client
docker compose start client
docker compose start client
docker compose up --force-recreate --build client
docker compose start client
docker compose up -d --build client
docker compose up --force-recreate --build client
docker compose up -d --build client
так же запускает сразу контейнер=> => naming to docker.io/library/rest-api-client
при попытке собрать, только не понял, откуда она взялась ) docker compose up -d --build client
[+] Building 0.3s (10/10) FINISHED docker:default
=> [client internal] load .dockerignore 0.0s
=> => transferring context: 52B 0.0s
=> [client internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 134B 0.0s
=> [client internal] load metadata for docker.io/library/node:20 0.0s
=> [client 1/5] FROM docker.io/library/node:20 0.0s
=> [client internal] load build context 0.0s
=> => transferring context: 17.09kB 0.0s
=> CACHED [client 2/5] WORKDIR /app 0.0s
=> CACHED [client 3/5] COPY package*.json . 0.0s
=> CACHED [client 4/5] RUN npm install 0.0s
=> [client 5/5] COPY . . 0.1s
=> [client] exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:100c7a6d01ad8c7de5b26c722f7f3196fd818c974ef31f21d9acf5d8a70b0c5a 0.0s
=> => naming to docker.io/library/rest-api-client 0.0s
[+] Running 1/1
✔ Container client_container Started
так же запускают кэшированный образ,
И в чем разница
docker compose up --help
Usage: docker compose up [OPTIONS] [SERVICE...]
Create and start containers
Options:
...
--force-recreate Recreate containers even if their configuration and image haven't changed.
...
встретил такую строку
image:
и впиши другое имя, затем пересобери образ. - docker-compose rm --stop --force my_service
- docker-compose pull my_service
- docker-compose up --detach --force-recreate my_service