这与使用 docker-compose 文件定义服务的 VS Code 远程容器特别相关。在这种情况下,其中一项服务是 MariaDB,它采用环境变量来指定包含 DB 用户密码的文件的位置。该文件必须在容器启动时存在,否则会引发新手难以诊断的错误。该文件可以包含一个默认值,但是如果我将其提交到公共存储库,开发人员将无法再在本地更改它,而不会存在提交更改的风险。当开发人员从存储库构建本地环境时,可以使用默认值,并且不应该要求他们在打开容器之前在特殊位置创建文件。
根据文档,里面devcontainer.json
有一个名为的属性initializeCommand
,它似乎是运行一些代码以将默认文件复制到正确位置的地方,但开发人员可以在 Mac 或 Windows 上运行 VS Code。是否有一种跨平台的方式来确保在启动之前准备好环境?我希望这个自动化,所以开发人员在开始之前不必记住或知道这样做。
基本上,它应该自动测试是否secrets/sql-password.txt
存在并secrets/sql-default-password.txt
仅在文件丢失时复制到那里。
有什么建议么?