記錄docker自定義easyswoole映象

2021-08-19 02:39:57 字數 3662 閱讀 6042

# 設定時區

run /bin/cp /usr/share/zoneinfo/asia/shanghai /etc/localtime \

&& echo 'asia/shanghai' > /etc/timezone

# 通過apt安裝 包

# 安裝 composer

run curl -ss | php \

&& mv composer.phar /usr/local/bin/composer \

&& composer self-update --clean-backups

#&& composer config -g repositories.packagist composer

# 安裝redis

run pecl install redis && docker-php-ext-enable redis && pecl clear-cache

# 安裝 pdo_mysql

run docker-php-ext-install pdo_mysql

# 編譯安裝 hiredis

run wget -o hiredis.tar.gz \

&& mkdir -p hiredis \

&& tar -xf hiredis.tar.gz -c hiredis --strip-components=1 \

&& rm hiredis.tar.gz \

&& ( \

cd hiredis \

&& make -j$(nproc) \

&& make install \

&& ldconfig \

) \&& rm -r hiredis

# 編譯安裝 swoole

# 編譯安裝 inotify

run wget -o inotify.tgz \

&& mkdir -p inotify \

&& tar -xf inotify.tgz -c inotify --strip-components=1 \

&& rm inotify.tgz \

&& ( \

cd inotify \

&& phpize \

&& ./configure \

&& make \

&& make install \

) \&& rm -r inotify \

&& docker-php-ext-enable inotify

# 從宿主系統的檔案系統上覆制檔案到目標容器的檔案系統

add . /var/www/easyswoole

# 進入工作目錄

workdir /var/www/easyswoole

# 執行composer 安裝依賴

run composer install --no-dev\

&& composer dump-autoload -o \

&& composer clearcache

# easyswoole框架安裝

run php bin/easyswoole install

# 指定在docker允許時指定的埠進行**

expose 80

# 執行容器時執行命令

cmd ["php", "/var/www/easyswoole/bin/easyswoole", "start", "-d"]

docker build -t yourimagename .# 使用此目錄的 dockerfile 建立映象
docker run -p 4000:9501 --name containername yourimagename  # 執行埠 4000 到 9501 的對映 --name 為容器名稱   可以新增 -p 4022:22 對映ssh埠
docker logs containername # 檢視日誌

docker login             # 使用您的 docker 憑證登入此 cli 會話
docker tag yourimagename username/repository:tag  # 標記 yourimagename 以上傳到映象庫
docker push username/repository:tag            # 將已標記的映象上傳到映象庫
上傳到映象庫之後,可以在別的電腦上執行docker

docker run -p 4000:9501 -p 4022:22 -d --name yourcontainername username/repository:tag                   # 執行映象庫中的映象
inotify擴充套件已經安裝, 如果需要熱重啟的話, 在官方

demo 例子裡面找到   

easyswooleevent.php檔案 mainservercreate 方法裡 新增如下**:

processmanager::getinstance()->addprocess('autoreload', inotify::class); # 記得 use inotify class
最後重啟容器

docker自定義網橋

由於docker預設網橋和公司網段衝突,導致無法訪問容器中執行的服務,因此要自定義docker網橋 docker0 1 關閉docker服務 2 停止舊網橋並刪除 ip link set dev docker0 down iplink del docker03 請先安裝bridge包 yum ins...

docker自定義網橋

除了預設的 docker0 網橋,使用者也可以指定網橋來連線各個容器。在啟動 docker 服務的時候,使用 b bridge 或 bridge bridge 來指定使用的網橋。如果服務已經執行,那需要先停止服務,並刪除舊的網橋。sudo systemctl stop docker sudo ip ...

docker 自定義映象

從阿里雲pull下來的centos映象沒有ifconfig,vim.為了有這些功能我們需要自定義映象.目的 1.支援vim 2.支援ifconfig 3.修改登入後的預設路徑 首先先在宿主機的根目錄下建立乙個資料夾mydocker,然後vim乙個dockerfile的dockerfile檔案 fro...