日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(三)用docker-compose部署postgres+ postgis

發布時間:2024/4/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (三)用docker-compose部署postgres+ postgis 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為postgres用docker鏡像安裝,所以host不需要安裝pg,只需要安裝客戶端

sudo apt-get install -y postgresql-client

postgres+postGIS

使用https://github.com/appropriate/docker-postgis? 有各種版本組合,目前使用 pg11 + pGIS 2.5

把3個文件放到1個文件夾里我這里是./machines/postgis,因為還有別的dockerfile。讓docker-compose能找到

# Use postgres/example user/password credentials version: '3.7'services:postgis: #postgres+ postGIS 安裝 不塞入自己寫的任何代碼!#image: mdillon/postgis? #圖省事可以直接用docker hub上的鏡像build: ./machines/postgisrestart: alwaysenvironment:POSTGRES_PASSWORD: examplevolumes:- data_pg:/var/lib/postgresql/dataports:- "5432:5432"networks:mynet:ipv4_address: '172.19.0.12'networks:mynet:ipam:driver: defaultconfig:- subnet: 172.19.0.0/16volumes:data_pg:driver_opts:type: none#device: ./commondevice: /home/XXX/data_pgo: bind ?

小坑: volume 用bind本地文件夾的方式,一定要先手工創建出?/home/XXX/data_pg?

然后, 一定要注意掛載進去名字要一樣. 今年文曲化忌,很容易因為這些小問題卡住

networks是為了手工指定IP地址,真正和pg有關的是把本地文件夾作為volumes 命名為data_pg 掛進去,讓pg能找到,這樣數據保存在本地文件夾里。

暴露pg的默認端口5432,用于pgadmin查看

?

----20190505發現的坑--------

啟動sh腳本需要時間,? 多個服務的時候,或者原作者那樣直接docker run 不會有問題

但是,如果docker-compose 只包含1個pg服務的時候, 直接entrypoint就退了!? 無論如何啟動不好.

卡了1晚上.

不得不說,docker-compose 不是個適合定制初始化過程的工具.? ?服務間等待之類的都要依賴wait-for-it.sh,像這種只有1個服務的,反而問題更大.有點垃圾.

主觀原因:還是不夠單一職責,??

讓docker-compose只負責把實例啟動起來

不要把初始化db這些工作,耦合進容器啟動中這個生命周期里來,

應該在啟動后用別的方式搞定.

?

于是一咬牙.舍掉sh腳本

無非是用psql 連接pg 創建數據庫模板, 安裝postgis extention的語句.這些

實測,完全可以用py通過pscopg2 搞定.

——果然,1小時搞定?

?

?

多說幾句,dockerfile寫的很精簡

FROM postgres:12LABEL author xuqinghanENV POSTGIS_MAJOR 3ENV POSTGIS_VERSION 3.0.0+dfsg-2~exp1.pgdg100+1RUN apt-get update \&& apt-cache showpkg postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR \&& apt-get install -y --no-install-recommends \postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION \postgis=$POSTGIS_VERSION \&& rm -rf /var/lib/apt/lists/*RUN mkdir -p /docker-entrypoint-initdb.d COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/postgis.sh COPY ./update-postgis.sh /usr/local/bin

只要把sh考進去, 就能在最后結尾時自動當成entrypoint 執行

這樣,不需要顯式寫 ENTRYPOINT CMD


dockerhub官網直接有postgis鏡像,但是pg版本低,還是9.x的

所以就選擇自己配個pg10+postgis 2.4.1

?postgres

postgres在dockerhub上的官方介紹不是太清楚,沒有演示-v?

我目前的主要需求是:

db用鏡像起容器

數據內容保存在容器外

啟動db容器時,用-v把數據內容掛進去

主要目的就是懶得安裝db配參數,然后,db更新升級的時候別影響數據。

?

yml這樣寫

# Use postgres/example user/password credentials version: '3.1'services:db:image: postgresrestart: alwaysenvironment:POSTGRES_PASSWORD: examplevolumes:- /home/db/postgres:/var/lib/postgresql/dataadminer:image: adminerrestart: alwaysports:- 8080:8080

/home/db/postgres是自己隨便寫的。可以事先不存在。

放在/home,是因為裝系統的時候/home為獨立分區,重裝系統的時候只要掛載點選上home,就完全保留數據。

?

然后用adminer 登錄數據庫。用戶名用 postgres 密碼是 example? Database是postgres?

?server對應的是docker-compose.yml里services:下面 用postgres鏡像的名字,在這里是db。如果換成別的名字,就要注意修改!

?

老實說,和pg的文檔八字不合。先是沒看懂dockerhub里各種亂七八糟的參數設置介紹(例子里用全局變量配了密碼,可是不配用戶名,莫名其妙啊);

然后沒看懂“Use postgres/example user/password” 這句話。直接寫 user:postgres password:example,或者加個as “ use postgres/example?as?user/password”行嗎?

是我智力低, 腦抽了,還是他文檔過于奇葩?

反正主要是為了postgis也就忍了。

PostGIS

安裝依賴項一堆,除去常見的gcc make g++,這些不算,gdal geos proj4 3件套是必裝的,官網的各種版本依賴關系矩陣茫茫多啊。。。然后還有json-c什么的。

實在懶得自己配了。直接參考github上docker-postgis,?dockerhub地址

只要把第一句pg版本從9.5改成10.0就OK了:優點,使用的linux是alpine,體積超小。但gdal,geos 都是用apk 安裝的,看版本,在依賴關系矩陣里也還算比較新吧。

?

只砍了一句,不知道postgis 2.4.1的 SHA256碼是多少,砍了?

總結

以上是生活随笔為你收集整理的(三)用docker-compose部署postgres+ postgis的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品一二三区 | youjizz国产精品 | 免费黄网站在线观看 | 香蕉污视频在线观看 | 亚洲国产精品成人综合久久久 | 高清毛片aaaaaaaaa片 | 色二区| 欧美日韩一区二区在线视频 | 亚洲亚洲人成综合网络 | 欧美专区在线观看 | 欧美黄色录像片 | 18久久久 | 欧美第二区| 日韩欧美国产一区二区三区 | 成人三级影院 | 亚洲成人视屏 | 国产视频三级 | 青青国产在线视频 | 欧美精品免费在线观看 | 欧美三日本三级少妇三99 | 国产黄色一区二区 | 国产精品日韩av | 这里只有精品66 | 欧美日韩一级黄色片 | 国产剧情av在线 | 激情全身裸吻胸 | 国产色一区 | 日韩欧美一区二区三区四区 | 国产在线久 | 少妇真实被内射视频三四区 | 高清视频一区二区 | 久久97人妻无码一区二区三区 | 国产男人搡女人免费视频 | 好吊一区 | 欧美精品动漫 | 一区二区三区免费观看视频 | 黄色网页免费观看 | 一级片aaa| 欧美性成人 | 亚洲黄网av | 国产精品一级片在线观看 | 一区二区三区观看 | 国产亚洲欧美精品久久久www | 日韩精品人妻一区二区中文字幕 | 久久久久久久性 | 欧美视频xxxx | 麻豆影视av | 在线看片亚洲 | 免费看大片a | 婷婷色在线观看 | 一级淫片免费看 | 丰满少妇被猛烈进入无码 | 国产自偷自拍 | 午夜影院在线视频 | www.国产在线视频 | 久久国产精品电影 | 欧美v视频| 亚洲蜜桃av一区二区 | 一区二区在线免费观看 | 青青草原国产在线观看 | 在线观看理论片 | 国产人妖在线观看 | 日韩电影二区 | 精品人伦一区二区三区蜜桃网站 | 成年在线视频 | 国产女人高潮的av毛片 | 美女bb视频| 午夜剧场91 | 精品久久91 | 亚洲av无码国产精品永久一区 | 亚洲国产一区在线观看 | 波多野结衣视频免费观看 | 亚洲我射| 99久久影院 | 97超碰碰| 国产黄色在线看 | 成人免费看片在线观看 | 日本成人一区二区 | 久操福利 | 久久久久亚洲av无码专区桃色 | xxxxhdvideos | 麻豆国产一区二区 | 猛男被粗大男男1069 | 五月天久久久久久 | 中文字幕av免费 | 欧美xxxx中国 | 天堂资源地址在线 | 日本高清在线观看 | 欧美日韩二三区 | 欧美高清v | 日韩激情久久 | 香蕉视频免费看 | 欧美丝袜脚交 | 手机在线不卡av | 亚洲国产传媒 | 综合五月天| 动漫涩涩免费网站在线看 | 国产理论一区 | 欧美日韩在线观看成人 |