Jas*_*enX 6 docker-compose codespaces
devcontainer.json我使用和设置了 Github codespaces 环境docker-compose.yaml。docker-compose.yml一切工作正常,但是每次需要重新构建容器时,定义的 postgres 数据库都会丢失其数据。
这是底部的部分docker-compose.yml
db:
image: postgres:latest
restart: unless-stopped
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
POSTGRES_USER: test_user
POSTGRES_DB: test_db
POSTGRES_PASSWORD: test_pass
volumes:
postgres-data:
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我试图将 postgres 数据卷映射到一个postgres-data卷中,但由于某种原因这不起作用。
我做错了什么导致 postgres 数据无法在容器构建之间保留?
根据https://docs.github.com/en/codespaces/customizing-your-codespace/configuring-codespaces-for-your-project#dockerfile,只有docker镜像可以从源代码和设置中提取,他们没有提到保证卷的持久性。
在浏览完此https://code.visualstudio.com/docs/remote/devcontainerjson-reference后,代码空间似乎不支持安装和与卷相关的其他一些功能。
spaceMount :Codespaces 中或在 Container Volume 中使用 Clone Repository 时尚不支持。
解决方法:
在 dockerfile 所在的 .devcontainer 文件夹中添加如下行
RUN curl https://<your_public_cloud>/your_volume.vol -O
Run Code Online (Sandbox Code Playgroud)
这里 <your_public_cloud> 可以是 google Drive、aws 或您有权下载卷的任何端点。这也是您需要坚持的音量。
下载完成后,您可以将卷安装到 postgres 服务或进行热交换。
当您想要保存时,只需将卷上传到您的云存储提供商即可。
每次构建时重复此过程,并在“取消构建”或关闭您的代码空间(无论您想调用什么)之前保存并上传。
希望能缓解您的问题,编码愉快!
| 归档时间: |
|
| 查看次数: |
2093 次 |
| 最近记录: |