[英]How do I connect to a postgres docker image with username, password, and url after running it?
[英]DOCKER How do I set an password and username on docker run with an windows image?
我想要的是
我想在啟動容器時設置用戶名和密碼,例如:
docker run --password=mysupersafepw --user=myusername mcr.microsoft.com/windows/servercore
我有什么
目前,用戶和密碼已硬編碼在我的 dockerfile 中:
RUN net USER /ADD ssh Passw0rd && net localgroup Administrators ssh /ADD
我試過的
我已經聽說過環境變量,但這(在 dockerfile 中)對我不起作用:
ENV user=ssh
ENV password=Passw0rd
[...]
RUN net USER /ADD ${user} ${password} && net localgroup Administrators ${user} /ADD
docker build 結果:
Step 10/14 : RUN net USER /ADD ${user} ${password} && net localgroup Administrators ${user} /ADD
---> Running in 2552caf74946
The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements.
More help is available by typing NET HELPMSG 2245.
您走在正確的軌道上,並且缺少一些參數。 您在 docker 文件中定義EVN user
是正確的。 為了在運行時設置user
的值,您應該將其指定為docker run -e user=ssh
以便在您的情況下可以使用以下方法。
docker run -e password=mysupersafepw -e user=myusername mcr.microsoft.com/windows/servercore
假設您已在 dockerfile 中正確設置它們。
嗨,我遇到了同樣的問題,通過運行為我執行的 powershell 腳本解決了它
docker run -e password=yourpassword 其余選項然后讓腳本更改您在命令行中提供的密碼。
Windows 映像的默認 shell 是cmd.exe
。 因此ARG
和ENV
應該像在任何 windows cmd: %myarg%
中一樣被取消引用。
所以在你的情況下,取消引用應該像這樣: RUN net USER /ADD %user% %password% && RUN net localgroup Administrators %user% /ADD
此外, ENV
語句應放在FROM
語句之后,以使容器內的環境變量可用。
也可以使用以下命令將 shell 更改為 powershell: SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; $verbosePreference='Continue';"]
在這種情況下,取消引用將具有以下語法: $env:myenv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.