Docker fig搭建mediawiki

2018-09-26 16:30 更新

fig,無花果。fig項目源自docker,可以認為是快速搭建基于Docker的隔離開發(fā)環(huán)境的工具。

一、安裝fig

  $ mkdir docker; cd docker  
    
  $ curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` > fig  
    
  $ sudo chmod +x fig; sudo mv fig /usr/local/bin/  

二、搭建mediawiki

使用個人構(gòu)建的鏡像,github地址:https://github.com/bopjiang/wikimedia-docker

在docker目錄下執(zhí)行如下命令:

  $ git clone https://github.com/bopjiang/wikimedia-docker.git  
  $ cd wikimedia-docker  
  $ fig up -d  

此時有兩個容器啟動:

  r$ docker ps  
  CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS                  NAMES  
  21182a060c17        nickstenning/mediawiki:latest   "/usr/bin/mediawiki-   7 hours ago         Up 7 hours          0.0.0.0:8880->80/tcp   wikimediadocker_wiki2_1     
  728ec09c3552        mysql:5.7.5                     "/entrypoint.sh mysq   7 hours ago         Up 7 hours          3306/tcp               wikimediadocker_db_1      

三、fig.yml

fig.yml用來配置鏡像構(gòu)建的具體內(nèi)容,此wiki的fig.yml在wikimedia-docker目錄下,內(nèi)容如下:

  wiki2:  
      image: 'nickstenning/mediawiki'  
      ports:  
          - "8880:80"  
      links:  
          - db:database  
      volumes:  
          - /data/wiki2:/data  
    
  db:  
      image: "mysql:5.7.5"  
      expose:  
          - "3306"  
      environment:  
          - MYSQL_ROOT_PASSWORD=defaultpass  

image:用來指定鏡像,如果本地沒有,fig將會嘗試去遠程pull這個鏡像。
ports:暴露的端口.

links:在其他服務中連接容器。

volumes: 卷掛載路徑,容器中的/data/目錄掛載到主機的/data/wiki2下。在wiki配置完畢后,將LocalSettings.php文件放置在主機的/data/wiki2目錄下。

expose:也是暴露端口,與ports的區(qū)別是不發(fā)布到宿主機的端口,只被連接的服務訪問。

environment:設(shè)置環(huán)境變量。

四、wiki的配置

瀏覽器中輸入localhost:8880,首次啟動會讓進入配置界面。完成后生成LocalSettings.php文件。也可以直接在這個配置文件中作配置。

生成的LocalSettings.php文件要拷到/data/wiki2目錄下(配置文件中定義的卷掛載路徑),并增加其r屬性就可以了。

還記得在yml配置文件中數(shù)據(jù)庫主機名是什么吧?database,對了,那么在配置中也要這樣填寫,如圖:

五、wiki的使用技巧

1.左側(cè)導航欄的配置
以管理員身份登錄,在搜索欄中輸入MediaWiki:sidebar
進入配置界面后就可以編輯了。比如:

navigation
    http://192.168.0.111:8880/index.php?title=Category:XXX|XXX
    mainpage|mainpage-description
    portal-url|portal 

3.分類
文章的末尾加入"category"標簽即可將此文章放到了xxx分類中,一篇文章可以加入多個分類。
比如:[[category:XXX]]

4.新文章
在Search中輸入你的文章名稱即可Edit。

5.換行
用br標簽可以換行。
空一行也會有換行效果。

6.pre標簽包圍源代碼
例如:

private int mSize;

六、保存容器和導入

  sudo docker commit 9ab6e234c9ba linc-wiki  
    
  sudo docker images REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE linc-wiki                latest              b5a1e34b01c2        14 seconds ago      689.7 MB  
    
  sudo docker export 9ab6e234c9ba > /home/linc/docker/images-bk/linc-wiki-export.tar  
  sudo docker save linc-wiki > ../images-bk/linc-wiki-save.tar  
    
  $ du -sh *  
  495M    linc-wiki-export.tar  
  672M    linc-wiki-save.tar  
    
  sudo cat /home/linc/docker/images-bk/linc-wiki-export.tar | sudo docker import - docker_hgweb  
  sudo docker load --input ../images-bk/linc-wiki-save.tar  

附錄:

1.fig使用報錯及解決

fig running error:

  $ fig up  
  Couldn't connect to Docker daemon at http:/ - is it running?  
    
  If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.  

fix it:

  1) Change the DOCKER_OPTS in /etc/default/docker to:  
  DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock"  
    
  2) Restart docker  
  sudo restart docker  
    
  3) Make sure that docker is running on localhost:4243   
  $ netstat -ant  |grep 4243  
  tcp        0      0 127.0.0.1:4243          0.0.0.0:*               LISTEN  
    
  4) Set DOCKER_HOST (.bashrc)  
  export DOCKER_HOST=tcp://localhost:4243  
    
  $ echo $DOCKER_HOST  
  tcp://localhost:4243   

參考:

dockerpool.com/static/books/docker_practice/fig/yml_ref.html

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號