我正在使用docker compose合并2张图像(tomcat与我的应用程序和数据库-postgres)。
我的撰写文件如下:
version: '3'
services:
tomcat:
build: ./tomcat-img
ports:
- "8080:8080"
depends_on:
- "db"
db:
build: ./db-img
volumes:
- db-data:/var/lib/postgres/data
ports:
- "5433:5432"
volumes:
db-data:
这是数据库映像的dockerfile:
FROM postgres:9.5-alpine
ENV POSTGRES_DB mydb
ENV POSTGRES_USER xxxx
ENV POSTGRES_PASSWORD xxxx
COPY init-db.sql /docker-entrypoint-initdb.d/
EXPOSE 5432
CMD ["postgres"]
接下来,我以docker-compose cli docker-compose -f docker-compose.yml up
并使用以下命令运行psql工具:
docker exec -it container_id psql -d xxxx -U xxxx
并插入新记录。之后,我检查是否确实存在:
select * from my_table;
此后,我尝试停止docker撰写并使用以下命令删除容器:
docker-compose -f docker-compose.yml down
然后重新启动
docker-compose -f docker-compose.yml up
当我再次运行db容器的psql工具并在my_table中选择数据时,没有先前插入的记录...您能帮我解决它吗?我只需要一次用init-db.sql初始化数据库,然后使用该持久性存储。感谢您的回答。
答案 0 :(得分:0)
在带有数据量的dockerized Postgresql中,我绑定到/ var / lib / postgresql而不是/ var / lib / postgres / data。尝试将撰写文件更改为
<script type="text/javascript">
const url="http://127.0.0.1/index.php?id=";
let task = [];
let task01 = function()
{
return new Promise( function(resolve , reject){
$.ajax({
url: url+1,
context: document.body,
success: function(){
resolve('success');
console.log("01");
}
});
})
}
task[0]= function(){
new Promise( function(resolve , reject){
$.ajax({
url: url+2,
context: document.body,
success: function(){
resolve('success');
console.log("02");
}
});
})
}
task[1] = function(){
new Promise( function(resolve , reject){
$.ajax({
url: url+3,
context: document.body,
success: function(){
resolve('success');
console.log("03");
}
});
})
}
task01().then(function(value){
Promise.all(task);
})
</script>