Skip to content
This repository has been archived by the owner on Dec 1, 2023. It is now read-only.

docker 在 Windows 上無法設定 cookie 位置 #21

Closed
LostSunset opened this issue Jul 3, 2022 · 9 comments
Closed

docker 在 Windows 上無法設定 cookie 位置 #21

LostSunset opened this issue Jul 3, 2022 · 9 comments

Comments

@LostSunset
Copy link

LostSunset commented Jul 3, 2022

您好,windows 系統下我以系統管理員權限之 cmd 輸入

docker run -it -v //c/cookie hyperbola/shopee-coins-bot:1 -u xxxxxx -p xxxxxxx -c /cookie

會出現以下訊息。

Passing password from command line is considered insecure. Should use environment variable or password file.
Start to load cookies.
Failed to load cookies: ENOENT: no such file or directory, open '/cookie'
Start to login shopee.
Try to login by username and password.
Login form submitted. Waiting for redirect.
Login failed: please login via SMS.
An SMS message is sent to your mobile. Once you click the link I will keep going. I will wait for you and please complete it in 10 minutes.
Login permitted.
Start to save cookie.
Failed to save cookie: EACCES: permission denied, open '/cookie'
Coin already received.

請問是否是 cookie 位置問題,不過我記得 -v 會自動創建。
或是要先新增 cookie 檔,如果是要先新增 cookie 檔,請問該如何新增呢?

PS:感謝大大的開發,期待此 docker 有人發圖文教學,謝謝!

@wdzeng
Copy link
Owner

wdzeng commented Jul 3, 2022

Hi,

我沒有在 Windows 上操作過 Docker,所以關於 mount file system 這件事可能沒辦法給你可靠的答覆。

我不確定在 Windows 上 -v //c/cookie 的意思是什麼。不過,對於 mount 機器上的 A 檔案到容器內 的 B 檔案這件事,有個前提是 A 檔案必須已經存在。如果不存在,mount 就不會成功,於是即使機器人把 cookie 存進 B 檔案內,也沒有任何意義。 docker 會在宿主機建立名為 A 的資料夾,該資料夾會 mount 到容器中,產生對應的 B 資料夾。由於 cookie 必須是檔案,當機器人試圖寫入 cookie 到資料夾 B 時,會造成寫入失敗。

要克服以上的問題,其中一個解法是 mount cookie 所在的資料夾。例如你想把 cookie 存在 C:\Users\myusername\shopee-cookie(我猜是對應到虛擬機中的 /mnt/c/Users/myusername/shopee-cookie),你可以這樣下指令。

docker run -it \
  -v "/mnt/c/Users/myusername:/secret" \
  hyperbola/shopee-coins-bot:1 \
  -c /secret/shopee-cookie \
  -u xxx -p xxx

如果還是出現 EACCES: permission denied 沒有權限的錯誤訊息,可以試試看 docker 的 --user 參數。

@wdzeng wdzeng changed the title docker無法設定cookie位置 docker 在 Windows 上無法設定 cookie 位置 Jul 3, 2022
@wdzeng wdzeng closed this as completed Jul 4, 2022
@rs980330603
Copy link

rs980330603 commented Jul 4, 2022

非常感謝!

問題已解決,由於我在 windows 有安裝 wsl2 子系統,沒注意是 docker 是在 Ubuntu 22.04 下執行,

解決方式如下:

勾選 wsl2

image

看是安裝哪一個版本或是希望 docker 在哪個ubuntu 版本環境下執行就開啟。

image

最後在 ubuntu shell(windows 的視窗)下輸入(myusername 需要改成你現在的 windows 使用者名稱以及 1001 在下面解釋):

docker run -u 1001 -it -v "/mnt/c/Users/myusername:/secret" hyperbola/shopee-coins-bot:1 -c /secret/shopee-cookie  -u xxx -p xxx

image

1001 怎麼來的可以參考:

id -u
id -g

image

@rs980330603
Copy link

rs980330603 commented Jul 4, 2022

不好意思,想再問一個問題,請問如果要達成每日簽到的條件,
是否電腦需一直開著且 docker 不能 stop?

@LostSunset
Copy link
Author

LostSunset commented Jul 4, 2022

非常感謝兩位,問題解決 !
也好奇 @rs980330603 大的最後問題。

@wdzeng
Copy link
Owner

wdzeng commented Jul 4, 2022

不好意思,想再問一個問題,請問如果要達成每日簽到的條件,
是否電腦需一直開著且 docker 不能 stop?

是的。而且你要自己額外設定排程,因為機器人只負責單次登入。這不見得是一般人能負擔的。

@Johnwang860424
Copy link

Johnwang860424 commented Jul 6, 2022

想請教為什麼必須以 root 的身分執行才會成功呢?
如果以其他使用者執行就會顯示檔案不存在...

螢幕擷取畫面 2022-07-06 201731

@wdzeng
Copy link
Owner

wdzeng commented Jul 6, 2022

Hi @Johnwang860424,

請盡量以複製貼上指令代替螢幕截圖,因為截圖不容易閱讀。這是網路上發問容易犯的小錯誤之一。

想請教為什麼必須以 root 的身分執行才會成功呢?

你說用 root (sudo?) 是成功的,但你的螢幕截圖顯示是失敗的,所以究竟是成功還是失敗了呢?我沒有聽懂這句話是什麼意思。

如果以其他使用者執行就會顯示檔案不存在 ...

你是指螢幕截圖中的 ENOENT: no such file or directory 嗎?我猜跟你下的 -v 參數有關。但因為你圖上馬賽克看不太清楚你怎麼下,我沒辦法給你肯定的回覆。

這份專案終究是以熟悉 docker 的使用者為目標,因此有使用上不符合預期的情況時,也可以先試著在網路上尋找與 docker 相關的問題與解答。

@Johnwang860424
Copy link

Johnwang860424 commented Jul 6, 2022

請盡量以複製貼上指令代替螢幕截圖,因為截圖是很不容易閱讀的。

抱歉,以後會多加注意的。

關於你遇到的問題,我猜跟你下的 -v 參數有關。但因為你圖上馬賽克看不太清楚你怎麼下,我沒辦法給你肯定的回覆。

跟您猜的一樣是與 -v 參數有關,改成以下指令就可以順利運行了,謝謝。

sudo docker run -u 1000 -it \
  -v "/mnt/c/Users/John Wang:/secret" \
  hyperbola/shopee-coins-bot:1 \
  -c /secret/cookie -u account -p password

@always9650ISU
Copy link

always9650ISU commented Aug 9, 2022

windows 指令範例

path = C:\Users\Yu

docker run  -it -v //c/Users/Yu:/secret hyperbola/shopee-coins-bot:1 -c /secret/cookie -u xxx -p xxx
docker run -it -v //c/Users/Yu:/secret hyperbola/shopee-coins-bot:1 -c /secret/cookie

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants