Docker Oracle数据库-can';t覆盖凭据的环境变量

Docker Oracle数据库-can';t覆盖凭据的环境变量,oracle,docker,docker-compose,Oracle,Docker,Docker Compose,我想在服务器上配置Oracle数据库。为此,我使用DockerHub的以下图片: 在将图像包含在docker compose.yml文件中后,我无法覆盖访问数据库的默认凭据(用户名为system,密码为oracle)。这是我的docker-compose.yml文件的外观: version: '3.5' services: oracle12c-db: image: sath89/oracle-12c restart: always # restart policy ports: - 152

我想在服务器上配置Oracle数据库。为此,我使用DockerHub的以下图片: 在将图像包含在
docker compose.yml
文件中后,我无法覆盖访问数据库的默认凭据(用户名为
system
,密码为
oracle
)。这是我的docker-compose.yml文件的外观:

version: '3.5'
services:
oracle12c-db: 
image: sath89/oracle-12c
restart: always # restart policy
ports:
  - 1521:1521
environment:                     
  - USER=myusername
  - PASS=mypass
  - HOST=oracle-database
  - PORT=1521
  - ORACLE_SID=XE
  - HTTP_PORT=8080    

成功执行命令
docker compose up
后,我仍然无法使用新凭据(仅使用默认凭据)访问数据库。我的
docker compose
文件的语法是否正确,或者我是否遗漏了其他内容?提前感谢您的帮助

我不认为您可以在运行时特别轻松地修改它

选项1是基于用户和密码创建自己的Dockerfile,并在构建时传入(或将其硬编码为其他内容)


选项2是修改其入口点,并在启动时运行相应的Oracle命令以更改用户/密码

,这样就解决了问题。我还想问一下,我该如何将自己的转储文件导入数据库?上面提到的docker形象的创作者简要地描述了它,但作为一个docker新手,我发现这很难理解。我应该将.dmp文件放在何处,并将文件路径作为环境变量粘贴到“docker run”命令中,还是将卷映射到主机服务器上的目录,然后将dmp文件放在其中。如果您希望Oracle文件也位于容器映射之外,请执行以下操作。如果要在以后重新导入dmp,请删除备份文件夹中的.cache文件以及数据文件夹中的所有文件。例如,在docker compose
卷中:-/datadir:/u01/app/oracle-/backupdir:/docker入口点initdb.d