I’m running the following versions of docker/docker-compose on a raspberry pi4
Client: Docker Engine - Community
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46
Built: Wed Sep 16 17:07:02 2020
Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46 Built: Wed Sep 16 17:00:52 2020 OS/Arch: linux/arm Experimental: false containerd: Version: 1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683 docker-compose version 1.27.4, build unknown
I have a stack defined in a docker-compose file. It has few services, one of them is defined as following
nodered: container_name: node-red # Build a custom image to add some plug-ins: # - https://flows.nodered.org/node/node-red-contrib-amazondash build: context: ./node-red restart: unless-stopped # Looks like required to allow pcap to work. user: root # Pcap should work in promiscuous mode (http://man7.org/linux/man-pages/man7/capabilities.7.html) cap_add: - NET_ADMIN ports: - "1880:1880" volumes: - ./node-red/data:/data - /etc/localtime:/etc/localtime:ro depends_on: - mosquitto
In the ./node-red folder I have Dockerfile which references nodered/node-red:latest image on docker-hub
FROM nodered/node-red:latest # Elevate user to allow packages installation. USER root # Add dependencies for both build time and run time. RUN apk add libpcap-dev # Add new plug-ins. RUN npm install \ node-red-contrib-amazondash \ node-red-dashboard \ node-red-node-suncalc \ node-red-contrib-influxdb \ node-red-contrib-telegrambot # Back to the node-red user, from now on. USER node-red
Now, when I run the docker-compose pull command, I can see the newer node-red image being pulled, but, even after running the docker-compose build command, the nodered service is still using the old image.
I’ve tried also more aggressive commands like
docker-compose build --force-rm --no-cache --pull nodered
But when I run the nodered service is still using an old version.
Any idea why this might happen?