[英]Rex-ray AWS S3 external volume docker (docker-compose not working)
I am trying to use postgres and pgadmin with rex-ray external volume on AWS S3.我正在尝试在 AWS S3 上将 postgres 和 pgadmin 与 rex-ray 外部卷一起使用。 I did:我做了:
Docker plugin install rexray/s3fs:0.11.4 S3FS_ACCESSKEY=XXXXXXXXXXXXX S3FS_SECRETKEY=XXXXXXXXXXXXXXXXX
And then I created two volumes (for postgres and pgadmin):然后我创建了两个卷(用于 postgres 和 pgadmin):
Docker volume create --driver rexray/s3fs:0.11.4 myrexvol1-1234
Docker volume create --driver rexray/s3fs:0.11.4 myrexvol2-1234
And I can see the volumes when I run docker volume ls
.当我运行docker volume ls
时,我可以看到卷。
I now try to use those external S3 volumes in docker-compose but it does not work and nothing is created in S3:我现在尝试在 docker-compose 中使用这些外部 S3 卷,但它不起作用并且 S3 中没有创建任何内容:
version: "3.8"
services:
pgAdmin:
restart: always
container_name: pgadmincontainer
image: dpage/pgadmin4:4.25
ports:
- "8000:80"
environment:
PGADMIN_DEFAULT_EMAIL: email@admin.com
PGADMIN_DEFAULT_PASSWORD: 1234
volumes:
- myrexvol1-1234:/var/lib/pgadmin
postgres:
image: postgres
container_name: databasecontainer
restart: always
environment:
POSTGRES_USER: me
POSTGRES_PASSWORD: password
POSTGRES_DB: database
ports:
- 5432:5432
volumes:
- ./sqlscripts:/docker-entrypoint-initdb.d
- myrexvol2-1234:/var/lib/postgresql/data
volumes:
myrexvol1-1234:
name: myrexvol1-1234
external: true
myrexvol2-1234:
name: myrexvol2-1234
external: true
What am I doing wrong?我究竟做错了什么? Strangely, I can manually create something inside container and it is then reflected inside S3 bucket, ie :奇怪的是,我可以在容器内手动创建一些东西,然后它会反映在 S3 存储桶内,即:
docker container run -it -v myrexvol2-1234:/myvol centos
...inside the container here...
# cd /myvol
# date >mydate
# ls -l
In the entrypoint script PGDATA directory try to be changed to user postgres.在入口点脚本 PGDATA 目录中尝试更改为用户 postgres。
find "$PGDATA" \! -user postgres -exec chown postgres '{}' +
It also try to change access rights:它还尝试更改访问权限:
chmod 700 "$PGDATA" || :
As it is not possible to change the owner of the volume bridging point, Add the following environment variable in postgres's service definition:由于无法更改卷桥接点的所有者,因此在 postgres 的服务定义中添加以下环境变量:
PGDATA: "/var/lib/postgresql/data/pgdata"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.