docker-volume-juicefs
docker-volume-juicefs copied to clipboard
`host=meta-server user=postgres database=juicefs`: hostname resolving error in docker compose use pg
docker compose comfig
version: "3"
volumes:
polyfill-cache:
driver: juicedata/juicefs
driver_opts:
name: polyfill-cache
metaurl: postgres://postgres:${META_PASSWORD}@meta-server:5432/juicefs
storage: ${STORAGE_TYPE}
bucket: ${BUCKET}
access-key: ${ACCESS_KEY}
secret-key: ${SECRET_KEY}
networks:
polyfiller:
services:
autoheal:
image: willfarrell/autoheal:1.2.0
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: always
meta-server:
depends_on:
- autoheal
image: postgres
environment:
- POSTGRES_USER=postgres
- POSTGRES_DB=juicefs
- POSTGRES_PASSWORD=${META_PASSWORD}
volumes:
- ./data:/var/lib/postgresql/data/
networks:
- polyfiller
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 3s
retries: 5
labels:
- autoheal=true
restart: always
api-service:
depends_on:
- autoheal
- meta-server
image: polyfiller/api-service
environment:
- NODE_ENV=production
volumes:
- polyfill-cache:/tmp/@wessberg/polyfiller
networks:
- polyfiller
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
interval: 300000000s
retries: 5
start_period: 30s
labels:
- autoheal=true
restart: always
logging:
driver: json-file
options:
max-size: 10m
caddy:
depends_on:
- api-service
image: caddy
ports:
- 80:80
- 443:443
networks:
- polyfiller
restart: always
command: caddy reverse-proxy --from polyfiller.app --to api-service:3000
I run docker compose create
✔ Network polyfiller_polyfiller Created 0.1s
✔ Network polyfiller_default Created 0.1s
✘ Volume "polyfiller_polyfill-cache" Error 10.1s
Error response from daemon: create polyfiller_polyfill-cache: VolumeDriver.Create: exit status 1
get log from docker.service
Mar 18 11:55:59 traefik dockerd[11888]: time="2024-03-18T11:55:59+08:00" level=error msg="2024/03/18 03:55:59 Entering go-plugins-helpers listPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:55:59 traefik dockerd[11888]: time="2024-03-18T11:55:59+08:00" level=error msg="time=\"2024-03-18T03:55:59Z\" level=debug method=list" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="2024/03/18 03:56:07 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"polyfiller_polyfill-cache\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=error msg=\"volume polyfiller_polyfill-cache not found\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="2024/03/18 03:56:07 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="2024/03/18 03:56:07 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"polyfiller_polyfill-cache\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=error msg=\"volume polyfiller_polyfill-cache not found\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="2024/03/18 03:56:07 Entering go-plugins-helpers createPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=debug msg=\"&volume.CreateRequest{Name:\\\"polyfiller_polyfill-cache\\\", Options:map[string]string{\\\"access-key\\\":\\\"*****\\\", \\\"bucket\\\":\\\"https://polyfill4web.blob.core.chinacloudapi.cn\\\", \\\"metaurl\\\":\\\"postgres://postgres:polyfill4web@meta-server:5432/juicefs\\\", \\\"name\\\":\\\"polyfill-cache\\\", \\\"secret-key\\\":\\\"******\\\", \\\"storage\\\":\\\"wasb\\\"}}\" method=create" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:07 traefik dockerd[11888]: time="2024-03-18T11:56:07+08:00" level=error msg="time=\"2024-03-18T03:56:07Z\" level=debug msg=\"/bin/juicefs format --no-update --storage=wasb --bucket=https://polyfill4web.blob.core.chinacloudapi.cn --access-key=**** --secret-key=***== postgres://postgres:polyfill4web@meta-server:5432/juicefs polyfill-cache\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:17 traefik dockerd[11888]: time="2024-03-18T11:56:17+08:00" level=error msg="time=\"2024-03-18T03:56:17Z\" level=error msg=\"juicefs format error: 2024/03/18 03:56:07.136293 juicefs[12] <INFO>: Meta address: postgres://postgres:****@meta-server:5432/juicefs [interface.go:497]\\n2024/03/18 03:56:17.149403 juicefs[12] <FATAL>: Meta postgres://postgres:****@meta-server:5432/juicefs is not available: ping database: failed to connect to `host=meta-server user=postgres database=juicefs`: hostname resolving error (lookup meta-server: Try again) [interface.go:509]\\n\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:17 traefik dockerd[11888]: time="2024-03-18T11:56:17+08:00" level=error msg="time=\"2024-03-18T03:56:17Z\" level=error msg=\"exit status 1\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:17 traefik dockerd[11888]: time="2024-03-18T11:56:17+08:00" level=error msg="2024/03/18 03:56:17 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:17 traefik dockerd[11888]: time="2024-03-18T11:56:17+08:00" level=error msg="time=\"2024-03-18T03:56:17Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 11:56:17 traefik dockerd[11888]: time="2024-03-18T11:56:17.159511442+08:00" level=error msg="Handler for POST /v1.44/volumes/create returned error: create polyfiller_polyfill-cache: VolumeDriver.Create: exit status 1"
second run docker compose create
✔ Container polyfiller-autoheal-1 Created 0.1s
✔ Container polyfiller-meta-server-1 Created 0.1s
✔ Container polyfiller-api-service-1 Created 0.1s
✔ Container polyfiller-caddy-1 Created
log from docker service
Mar 18 12:00:17 traefik dockerd[11888]: time="2024-03-18T12:00:17+08:00" level=error msg="2024/03/18 04:00:17 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:17 traefik dockerd[11888]: time="2024-03-18T12:00:17+08:00" level=error msg="time=\"2024-03-18T04:00:17Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"polyfiller_polyfill-cache\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:17 traefik dockerd[11888]: time="2024-03-18T12:00:17+08:00" level=error msg="2024/03/18 04:00:17 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:17 traefik dockerd[11888]: time="2024-03-18T12:00:17+08:00" level=error msg="time=\"2024-03-18T04:00:17Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="2024/03/18 04:00:18 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="time=\"2024-03-18T04:00:18Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="2024/03/18 04:00:18 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="time=\"2024-03-18T04:00:18Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"polyfiller_polyfill-cache\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="2024/03/18 04:00:18 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="time=\"2024-03-18T04:00:18Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"3e8770e74f7592d89906a275f5d0b7a6444b4f019ed6f24930375da03b7261f0\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="time=\"2024-03-18T04:00:18Z\" level=error msg=\"volume 3e8770e74f7592d89906a275f5d0b7a6444b4f019ed6f24930375da03b7261f0 not found\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="2024/03/18 04:00:18 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="time=\"2024-03-18T04:00:18Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"1fe1b6082548635500dfed77eecd473337f9a29a8735078be138baeacc5c13f3\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:00:18 traefik dockerd[11888]: time="2024-03-18T12:00:18+08:00" level=error msg="time=\"2024-03-18T04:00:18Z\" level=error msg=\"volume 1fe1b6082548635500dfed77eecd473337f9a29a8735078be138baeacc5c13f3 not found\"" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
I run docker compose up
get log from docker service
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14+08:00" level=error msg="2024/03/18 04:02:14 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14+08:00" level=error msg="time=\"2024-03-18T04:02:14Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14+08:00" level=error msg="2024/03/18 04:02:14 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14+08:00" level=error msg="time=\"2024-03-18T04:02:14Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"polyfiller_polyfill-cache\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14+08:00" level=error msg="2024/03/18 04:02:14 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14+08:00" level=error msg="time=\"2024-03-18T04:02:14Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14.426032510+08:00" level=info msg="No non-localhost DNS nameservers are left in resolv.conf. Using default external servers: [nameserver 8.8.8.8 nameserver 8.8.4.4]"
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14.426097015+08:00" level=info msg="IPv6 enabled; Adding default IPv6 external servers: [nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844]"
Mar 18 12:02:14 traefik dockerd[11888]: 2024/03/18 12:02:14 http: superfluous response.WriteHeader call from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*respWriterWrapper).WriteHeader (wrap.go:98)
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14.849216245+08:00" level=info msg="No non-localhost DNS nameservers are left in resolv.conf. Using default external servers: [nameserver 8.8.8.8 nameserver 8.8.4.4]"
Mar 18 12:02:14 traefik dockerd[11888]: time="2024-03-18T12:02:14.849270186+08:00" level=info msg="IPv6 enabled; Adding default IPv6 external servers: [nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844]"
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15.286014038+08:00" level=info msg="No non-localhost DNS nameservers are left in resolv.conf. Using default external servers: [nameserver 8.8.8.8 nameserver 8.8.4.4]"
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15.286079928+08:00" level=info msg="IPv6 enabled; Adding default IPv6 external servers: [nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844]"
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="2024/03/18 04:02:15 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="time=\"2024-03-18T04:02:15Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="2024/03/18 04:02:15 Entering go-plugins-helpers getPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="time=\"2024-03-18T04:02:15Z\" level=debug msg=\"&volume.GetRequest{Name:\\\"polyfiller_polyfill-cache\\\"}\" method=get" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="2024/03/18 04:02:15 Entering go-plugins-helpers capabilitiesPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="time=\"2024-03-18T04:02:15Z\" level=debug method=capabilities" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="2024/03/18 04:02:15 Entering go-plugins-helpers mountPath" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15+08:00" level=error msg="time=\"2024-03-18T04:02:15Z\" level=debug msg=\"&volume.MountRequest{Name:\\\"polyfiller_polyfill-cache\\\", ID:\\\"e059d8dea2fa5b9437ddb990ca638e9b437fdd2ae0a4d4937c3ed86cb39a6c26\\\"}\" method=mount" plugin=b59d66d420b9d9d317583c6b0fbd12638f92e74891d44fafa6f6de7d55c2ec30
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15.754192262+08:00" level=info msg="No non-localhost DNS nameservers are left in resolv.conf. Using default external servers: [nameserver 8.8.8.8 nameserver 8.8.4.4]"
Mar 18 12:02:15 traefik dockerd[11888]: time="2024-03-18T12:02:15.754271346+08:00" level=info msg="IPv6 enabled; Adding default IPv6 external servers: [nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844]"
in pg docker container , I cann't find any data about juicefs
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
juicefs | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=# \c juicefs
You are now connected to database "juicefs" as user "postgres".
juicefs=# \dt
Did not find any relations.
juicefs=#
Maybe Docker runs docker volume create before the docker run of the PgSQL service, so JuiceFS volume plugin can't connect to the Meta Database.
We may use JuiceFS as a Data Volume Container instead of a Volume Plugin, then mount it into other service containers: https://developer.aliyun.com/article/574444
when I run
docker volume create -d juicedata/juicefs \
-o name=VOLUME_NAME \
-o metaurl=sqlite3://myjfs.db \
-o storage=wasb \
-o bucket=https://pxxxx.cn \
-o access-key=poxxxx \
-o secret-key=xxxxxx \
jfsvolume
sudo dmesg -T | grep musl
[Mon Mar 18 11:46:44 2024] sh[1227]: segfault at 7fff7b43eff8 ip 00007fc0c0d58266 sp 00007fff7b43f000 error 6 in ld-musl-x86_64.so.1[7fc0c0d21000+48000] likely on CPU 2 (core 0, socket 1)
[Mon Mar 18 11:55:26 2024] sh[10395]: segfault at 7ffc7333eff8 ip 00007f78412da05e sp 00007ffc7333f000 error 6 in ld-musl-x86_64.so.1[7f78412a3000+48000] likely on CPU 1 (core 1, socket 0)
[Mon Mar 18 22:14:44 2024] sh[13251]: segfault at 7ffc0abadff8 ip 00007f3dd8feb062 sp 00007ffc0abae000 error 6 in ld-musl-x86_64.so.1[7f3dd8fb4000+48000] likely on CPU 1 (core 1, socket 0)