来自自定义AMI的EC2 Postgresql docker仅在重新启动docker后装载数据库更改
我正在t2.micro Amazon-linux-2 Ec2实例中运行Postgresql 13 on docker容器,同时创建了一个用于自动缩放的AMI映像,并尝试从自定义AMI映像启动新的Ec2实例,并使用以下用户数据:来自自定义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
#!/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实例之前执行。。所以如果有人能帮忙的话