这是我的docker-compose.yml文件:
version: '3.2'
services:
pa-portal:
image: web_app_image
container_name: pa-portal
volumes:
- productDB:/web_app/db
ports:
- "8080:8080"
cypress:
image: "cypress/included:4.4.0"
depends_on:
- pa-portal
environment:
- CYPRESS_baseUrl=http://pa-portal:8080
working_dir: /cypress-testing
volumes:
- ./:/cypress-testing
volumes:
productDB:
在我的Cypress任务之一中,我具有以下代码片段:
let db = new sqlite3.Database('pa-portal:8080/web_app/db/db.sqlite3', sqlite3.OPEN_READWRITE, (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the database.');
});
db.run(`DELETE FROM table_name`, function (err) {
if (err) {
return console.error(err.message);
}
console.log(`Row(s) deleted ${this.changes}`);});
但是我得到的消息是
Connected to the database.
cypress_1 | SQLITE_CANTOPEN: unable to open database file
我猜我正在以错误的方式访问数据库,并且我需要一种特定于Docker的方式...
答案 0 :(得分:1)
该db.sqlite3文件是其他人的Django Web应用程序的一部分
然后Django应用应公开一个API,以防止未经授权访问该数据库。
如前所述,容器文件系统是相互隔离的