第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將簡(jiǎn)單的 Dockerfile 轉(zhuǎn)換為 docker-compose

將簡(jiǎn)單的 Dockerfile 轉(zhuǎn)換為 docker-compose

PHP
墨色風(fēng)雨 2024-01-19 20:59:45
我有一個(gè)簡(jiǎn)單的Dockerfile配置php:7.2-fpm正在引用它docker-compose.yml。我想刪除Dockerfile位于php/Dockerfile并將命令集成到我的docker-compose-yml文件中。這是我的php/Dockerfile:FROM php:7.2-fpm RUN docker-php-ext-install mysqli這是我的docker-compose.yml,它啟動(dòng)了 php-fpm、nginx、letencrypt certbot、mysql 和 phpmyadmin:version: '3'services:    php:        container_name: dev_php        build:            context: ./php        ports:            - 9000:9000        volumes:            - ./website:/website            - ./php/www.conf:/usr/local/etc/php-fpm.d/www.conf        environment:            MYSQL_USER: ${MYSQL_USER}            MYSQL_PASSWORD: ${MYSQL_PASSWORD}    nginx:        container_name: dev_nginx        image: nginx:1.13.8        ports:            - 80:80            - 443:443        volumes:            - ./website:/website            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf            - ./certbot/conf:/etc/letsencrypt            - ./certbot/www:/var/www/certbot        depends_on:            - php            - mysql        command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"    certbot:        container_name: dev_certbot        image: certbot/certbot        volumes:            - ./certbot/conf:/etc/letsencrypt            - ./certbot/www:/var/www/certbot        entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"    mysql:        container_name: dev_mysql        image: mysql:5.7        ports:            - 3306:3306        environment:            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}            MYSQL_DATABASE: ${MYSQL_DATABASE}            MYSQL_USER: ${MYSQL_USER}            MYSQL_PASSWORD: ${MYSQL_PASSWORD}        volumes:            - ./mysql:/docker-entrypoint-initdb.d由于我的php/Dockerfile比較簡(jiǎn)單,我想我可以這樣做:但這是行不通的。當(dāng)我使用我的項(xiàng)目啟動(dòng)時(shí),docker-compose up我可以看到dev_php(PHP 容器的名稱)執(zhí)行了一堆我通常不會(huì)看到的任務(wù),然后它繼續(xù)安裝,mysqli但在使用exit code 0.想法?
查看完整描述

1 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

您的原始 Dockerfile 不僅僅只是安裝擴(kuò)展mysqli。

它的入口點(diǎn)如源代碼所示

它還具有如下所示的命令

這些入口點(diǎn)和命令將啟動(dòng)容器并保持其運(yùn)行


現(xiàn)在回到您的修改:

我可以看到 dev_php (PHP 容器的名稱)執(zhí)行了一堆我通常不會(huì)看到的任務(wù)

這是 的輸出docker-php-ext-install mysqli。你之前沒(méi)有看到它是因?yàn)樗窃跇?gòu)建 docker 鏡像時(shí)完成的。

退出后立即退出,退出代碼為 0

這是預(yù)期的,因?yàn)槊钜淹瓿商幚恚瑳](méi)有其他事情可做。

為了保持容器運(yùn)行,您必須手動(dòng)添加原始入口點(diǎn)和命令。像這樣的事情:

php:
????container_name:?dev_php
????image:?php:7.2-fpm
????ports:
????????-?9000:9000
????volumes:
????????-?./website:/website
????????-?./php/www.conf:/usr/local/etc/php-fpm.d/www.conf
????environment:
????????MYSQL_USER:?${MYSQL_USER}
????????MYSQL_PASSWORD:?${MYSQL_PASSWORD}
????entrypoint:
????????-?bash
????????-?-c
????command:
????????-?|
??????????docker-php-ext-install?mysqli;?\
??????????docker-php-entrypoint?php-fpm

我尚未進(jìn)行測(cè)試來(lái)確認(rèn)語(yǔ)法 100% 正確,但您應(yīng)該明白了。重要的是docker-php-entrypoint php-fpm


我的建議是在這種情況下堅(jiān)持使用 Dockerfile。

  1. 一個(gè)好的副作用是 Docker 會(huì)緩存構(gòu)建層,因此您無(wú)需mysqli每次啟動(dòng)容器時(shí)都等待安裝過(guò)程。

  2. 您也可以考慮啟用擴(kuò)展


查看完整回答
反對(duì) 回復(fù) 2024-01-19
  • 1 回答
  • 0 關(guān)注
  • 339 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)