小弟想將SmartFoxServer buitld image儲存起來,因此將官網的手動安裝流程
(http://docs2x.smartfoxserver.com/GettingStarted/install-linux)
寫成Dockerfile
FROM centos:7
MAINTAINER scott
RUN yum install -y wget
WORKDIR /etc
RUN wget https://www.smartfoxserver.com/download/get/267/SFS2X_unix_2_14_0.tar
RUN tar xf SFS2X_unix_2_14_0.tar
WORKDIR /etc/SmartFoxServer_2X/SFS2X
RUN ./sfs2x-service start
但會出現兩個問題
查看 Docker logs,也似乎因為沒有啟動無法查看
後來在DockerHub有找到IT前輩寫好的dockerfile,參考後發現,這是寫在UNIX作業環境的
因此想上來詢問,是否有CentOS7的寫法或建議,可能我哪裡誤解,寫錯了
把 sfs2x-service 啟動 script 的 nohup 移除就可以了
$INSTALL4J_JAVA_PREFIX nohup "$app_java_home/bin/java"
意思是說替換成
RUN $INSTALL4J_JAVA_PREFIX nohup "$app_java_home/bin/java"
對嗎?我試試
另一個問題是最後一個entrypoint啟動進入點,應該用 CMD 而不是 RUN 命令
CMD ./sfs2x-service start
https://philipzheng.gitbooks.io/docker_practice/content/dockerfile/instructions.html
剛剛也去了解了一下,用途
受教了,感謝
CMD $INSTALL4J_JAVA_PREFIX nohup "$app_java_home/bin/java"
好吧 .. 我剛剛測試了一下,結果也是跟原本一樣
進入容器查看,發現服務沒啟動
啟動容器,也是顯示Restarting (127) 1 second ago
FROM centos:7
MAINTAINER scott
RUN yum install -y wget
WORKDIR /etc
RUN wget https://www.smartfoxserver.com/download/get/267/SFS2X_unix_2_14_0.tar
RUN tar xf SFS2X_unix_2_14_0.tar
WORKDIR /etc/SmartFoxServer_2X/SFS2X
#CMD ./sfs2x-service start
CMD ./sfs2x-service start-launchd
使用docker run -d sfs 來建立容器與啟動
有了!!感謝!!
目前我要測試網頁,應該是要執行
docker run -d --name sfs -p 8080:80 --restart always sfs:latest
對吧 (確定防火牆已關)
建議可以使用docker-compose的yml來設定容器參數
好的,謝謝您的建議跟協助,我會繼續嘗試及鑽研這一部分
查看logs 也沒看到什麼異常