Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自自定义AMI的EC2 Postgresql docker仅在重新启动docker后装载数据库更改_Postgresql_Docker_Amazon Ec2_Amazon Ami_User Data - Fatal编程技术网

来自自定义AMI的EC2 Postgresql docker仅在重新启动docker后装载数据库更改

来自自定义AMI的EC2 Postgresql docker仅在重新启动docker后装载数据库更改,postgresql,docker,amazon-ec2,amazon-ami,user-data,Postgresql,Docker,Amazon Ec2,Amazon Ami,User Data,我正在t2.micro Amazon-linux-2 Ec2实例中运行Postgresql 13 on docker容器,同时创建了一个用于自动缩放的AMI映像,并尝试从自定义AMI映像启动新的Ec2实例,并使用以下用户数据: #!/bin/bash #Upgrade ec2 instance yum update -y #Start docker daemon on boot sudo systemctl enable docker.service sudo systemctl enab

我正在t2.micro Amazon-linux-2 Ec2实例中运行Postgresql 13 on docker容器,同时创建了一个用于自动缩放的AMI映像,并尝试从自定义AMI映像启动新的Ec2实例,并使用以下用户数据:

#!/bin/bash

#Upgrade ec2 instance
yum update -y 

#Start docker daemon on boot
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

#Start docker service 
service docker start 

#Start docker image 
docker run --restart unless-stopped --name postgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres

#Cpy my_thesaurus.ths file
cp /var/lib/docker/overlay2/***/diff/usr/share/postgresql/13/tsearch_data/thesaurus_sample.ths
 /var/lib/docker/overlay2/***/diff/usr/share/postgresql/13/tsearch_data/my_thesaurus.ths
 
 --//
问题是,当我用DBeaver连接到新实例数据库时,首先我必须输入默认的postgresql密码,其次我得到的数据库没有具体化的视图,但有表(这很奇怪,但每次都会发生),重点是, 当我ssh到ec2实例并执行以下操作时:

$ sudo service docker restart
$ docker run ..... ( in the case where i used docker run --rm in user data and not docker run --restart unless-stopped , in the second case dont need to docker run )
之后,我将数据库中的密码更改为自定义AMI中更改的密码,并获得物化视图,当然,我尝试向用户数据添加restart,但似乎不起作用,可能整个问题是,用户数据在实例启动时执行,因此可能在将新卷装载到ec2实例之前执行。。所以如果有人能帮忙的话