1. 程式人生 > 實用技巧 >Spring內建的定時任務排程@Scheduled

Spring內建的定時任務排程@Scheduled

技術標籤:rabbitmq

1、安裝指令碼,前提是已安裝好docker

docker run -d --net host --name rabbitmq -v /home/rabbitmq:/var/lib/rabbitmq -v /opt/rabbitmq/hosts:/etc/hosts -v /rabbitmqconfig/rabbitmq:/etc/rabbitmq/ -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 -e TZ="Asia/Shanghai" -e RABBITMQ_DEFAULT_USER="rabbitmq"
-e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:management

2、不出意外的話,docker容器啟動會報錯,啟動不了,原因是我們掛載了配置檔案目錄,沒有許可權操作,報錯資訊如下:
在這裡插入圖片描述

touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied
touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied

3、這個錯的意思是,沒有許可權操作這個檔案。網上查了好久,給出的解決辦法:在掛載目錄後多加一個–privileged=true引數 ,本人測試幾次無效;還有的說是進入容器,然後給目錄賦權,

類似參考,我想知道容器都起不來,是怎麼進去賦權的。。。
4、我本地的解決辦法是,先建立一個沒有目錄對映的容器

docker run -d --net host --name rabbitmq  -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 -e TZ="Asia/Shanghai" -e RABBITMQ_DEFAULT_USER="rabbitmq" -e RABBITMQ_DEFAULT_PASS=123456  rabbitmq:management

然後把docker裡面沒有目錄對映容器的配置檔案複製一份出來(進入容器使用docker cp -a 容器id:/etc/rabbitmq /rabbitmqconfig/rabbitmq/

),放到指定目錄下,作為帶對映目錄容器的對映路徑。然後在建立帶對映路徑的容器,啟動就不會報錯了,親測是沒有問題的。容器中配置檔案目錄為:/etc/rabbitmq

5.容器中相關目錄說明:

進入容器:
docker exec -it rabbit /bin/bash
配置檔案目錄:/etc/rabbitmq
資料儲存目錄:/var/lib/rabbitmq
日誌目錄:/var/log/rabbitmq