最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Trae快速構(gòu)建自己項(xiàng)目的docker鏡像

  發(fā)布時(shí)間:2026-05-18 10:30:26   作者:sugar1569   我要評(píng)論
本文介紹了CRMEB商城系統(tǒng)的Docker鏡像構(gòu)建規(guī)范,包括多架構(gòu)鏡像構(gòu)建、騰訊云鏡像倉(cāng)庫(kù)管理等內(nèi)容,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Trae 設(shè)置添加項(xiàng)目規(guī)則,我這個(gè)是用的騰訊云個(gè)人免費(fèi)鏡像,鏡像地址改成自己的,賬號(hào)密碼也改成自己的,就可以直接使用,就可以全自動(dòng)維護(hù)自己的鏡像了

---
alwaysApply: false
description: 陀螺匠項(xiàng)目Docker鏡像構(gòu)建規(guī)范與最佳實(shí)踐,包含Dockerfile編寫(xiě)、分層優(yōu)化、多架構(gòu)構(gòu)建、騰訊云鏡像倉(cāng)庫(kù)管理
---

Docker鏡像構(gòu)建規(guī)范(CRMEB項(xiàng)目)

項(xiàng)目概述

  • 項(xiàng)目名稱: CRMEB 商城系統(tǒng)
  • 技術(shù)棧: ThinkPHP 6.x + Workerman + PHP 7.4 + MySQL 5.7 + Redis + Nginx + Docker
  • 鏡像倉(cāng)庫(kù): 騰訊云容器鏡像服務(wù) (ccr.ccs.tencentyun.com)
  • 構(gòu)建要求: 必須構(gòu)建多架構(gòu)鏡像(linux/amd64 + linux/arm64)

鏡像倉(cāng)庫(kù)地址

服務(wù)鏡像地址
PHPccr.ccs.tencentyun.com/crmebky_php/php
MySQLccr.ccs.tencentyun.com/crmebky_php/mysql
Redisccr.ccs.tencentyun.com/crmebky_php/redis
Nginxccr.ccs.tencentyun.com/crmebky_php/nginx
完整應(yīng)用ccr.ccs.tencentyun.com/crmebky_php/crmebky

環(huán)境準(zhǔn)備

# 登錄騰訊云容器鏡像服務(wù)
docker login ccr.ccs.tencentyun.com
# 使用現(xiàn)有的多架構(gòu)構(gòu)建器
docker buildx use multiarch

多架構(gòu)鏡像構(gòu)建與推送(生產(chǎn)環(huán)境)

注意:以下操作僅用于生產(chǎn)環(huán)境推送鏡像到倉(cāng)庫(kù),本地開(kāi)發(fā)調(diào)試請(qǐng)使用上面的【本地開(kāi)發(fā)調(diào)試】章節(jié)。

必須構(gòu)建多架構(gòu)鏡像,支持 linux/amd64 和 linux/arm64 平臺(tái)。

構(gòu)建并推送各服務(wù)鏡像

# 生成時(shí)間標(biāo)簽(強(qiáng)制要求)
export IMAGE_TAG=$(date +%Y%m%d-%H%M%S)
# PHP 鏡像
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/php:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/php:$IMAGE_TAG \
  ./docker-compose-dev/php --push
# MySQL 鏡像
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/mysql:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/mysql:$IMAGE_TAG \
  ./docker-compose-dev/mysql --push
# Redis 鏡像
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/redis:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/redis:$IMAGE_TAG \
  ./docker-compose-dev/redis --push
# Nginx 鏡像
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/nginx:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/nginx:$IMAGE_TAG \
  ./docker-compose-dev/nginx --push

構(gòu)建完整應(yīng)用鏡像

# 進(jìn)入項(xiàng)目根目錄
cd .
# 或者從.version文件中讀取

export IMAGE_TAG=$(cat .version 2>/dev/null || date +%Y%m%d-%H%M%S)

docker buildx build --platform linux/amd64,linux/arm64 \
  -f docker-compose-dev/allinone/Dockerfile \
  -t ccr.ccs.tencentyun.com/crmebky_php/crmebky:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/crmebky:$IMAGE_TAG \
  --push ./docker-compose-dev/allinone

一鍵構(gòu)建腳本

#!/bin/bash
IMAGE_TAG=$(date +%Y%m%d-%H%M%S)
echo "鏡像標(biāo)簽: $IMAGE_TAG"

export DOCKER_BUILDKIT=1
docker buildx use multiarch

# PHP 鏡像
echo "構(gòu)建 PHP 鏡像..."
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/php:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/php:$IMAGE_TAG \
  --push ./docker-compose-dev/php

# MySQL 鏡像
echo "構(gòu)建 MySQL 鏡像..."
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/mysql:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/mysql:$IMAGE_TAG \
  --push ./docker-compose-dev/mysql

# Redis 鏡像
echo "構(gòu)建 Redis 鏡像..."
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/redis:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/redis:$IMAGE_TAG \
  --push ./docker-compose-dev/redis

# Nginx 鏡像
echo "構(gòu)建 Nginx 鏡像..."
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/nginx:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/nginx:$IMAGE_TAG \
  --push ./docker-compose-dev/nginx

# 完整應(yīng)用鏡像
echo "構(gòu)建完整應(yīng)用鏡像..."
export IMAGE_TAG=$(cat .version 2>/dev/null || date +%Y%m%d-%H%M%S)
docker buildx build --platform linux/amd64,linux/arm64 \
  -f docker-compose-dev/allinone/Dockerfile \
  -t ccr.ccs.tencentyun.com/crmebky_php/crmebky:latest \
  -t ccr.ccs.tencentyun.com/crmebky_php/crmebky:$IMAGE_TAG \
  --push ./docker-compose-dev/allinone

echo "構(gòu)建完成!標(biāo)簽: latest, $IMAGE_TAG"

鏡像標(biāo)簽規(guī)范

標(biāo)簽類(lèi)型格式說(shuō)明
latestlatest最新穩(wěn)定版本
時(shí)間標(biāo)簽YYYYMMDD-HHMMSS每次推送必須添加
版本標(biāo)簽v2.0.1語(yǔ)義化版本
環(huán)境標(biāo)簽dev/test開(kāi)發(fā)/測(cè)試環(huán)境

強(qiáng)制要求: 每次推送必須讓用戶確認(rèn)地址和標(biāo)簽,推送成功后提示用戶要不要推送"latest"分支。

鏡像驗(yàn)證

# 查看多架構(gòu)信息
docker buildx imagetools inspect ccr.ccs.tencentyun.com/crmebky_php/crmebky:latest

# 查看 manifest
docker manifest inspect ccr.ccs.tencentyun.com/crmebky_php/crmebky:latest

本地開(kāi)發(fā)調(diào)試(默認(rèn))

本地開(kāi)發(fā)調(diào)試時(shí),使用普通 docker build 構(gòu)建鏡像,不推送到倉(cāng)庫(kù):

構(gòu)建本地鏡像

# 進(jìn)入 docker-compose-dev 目錄
cd ./docker-compose-dev

# 構(gòu)建 PHP 鏡像
docker build -t crmeb-php:latest ./php

# 構(gòu)建 MySQL 鏡像
docker build -t crmeb-mysql:latest ./mysql

# 構(gòu)建 Redis 鏡像
docker build -t crmeb-redis:latest ./redis

# 構(gòu)建 Nginx 鏡像
docker build -t crmeb-nginx:latest ./nginx

# 使用 docker-compose 啟動(dòng)本地鏡像
docker-compose -f docker-compose.build.yml up -d

# 查看日志
docker-compose -f docker-compose.build.yml logs -f

# 測(cè)試訪問(wèn)
curl http://localhost:8011

# 進(jìn)入 PHP 容器調(diào)試
docker exec -it crmeb_php bash

# 停止并刪除測(cè)試容器
docker-compose -f docker-compose.build.yml down

鏡像測(cè)試

# 本地運(yùn)行 PHP 鏡像測(cè)試
docker run -d -p 9000:9000 --name test-php \
  crmeb-php:latest

# 檢查 PHP 版本和擴(kuò)展
docker exec test-php php -v
docker exec test-php php -m

# 清理測(cè)試容器
docker rm -f test-php

# 本地運(yùn)行 MySQL 鏡像測(cè)試
docker run -d -p 3306:3306 --name test-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  crmeb-mysql:latest

# 檢查 MySQL 版本
docker exec test-mysql mysql -V

# 清理測(cè)試容器
docker rm -f test-mysql

# 本地運(yùn)行 Redis 鏡像測(cè)試
docker run -d -p 6379:6379 --name test-redis \
  crmeb-redis:latest

# 檢查 Redis 版本
docker exec test-redis redis-server -v

# 清理測(cè)試容器
docker rm -f test-redis

# 本地運(yùn)行 Nginx 鏡像測(cè)試
docker run -d -p 80:80 --name test-nginx \
  crmeb-nginx:latest

# 檢查 Nginx 版本
docker exec test-nginx nginx -v

# 清理測(cè)試容器
docker rm -f test-nginx

Dockerfile 分層優(yōu)化

# 1. 基礎(chǔ)層
FROM php:7.4-fpm

# 2. 系統(tǒng)依賴層
RUN apt-get update && apt-get install -y \
    libpng-dev libjpeg-dev libfreetype6-dev \
    libcurl4-openssl-dev libbcmath-dev libmbstring-dev \
    libzip-dev unzip git \
    && docker-php-ext-configure gd \
    && docker-php-ext-install gd curl bcmath mbstring zip pdo pdo_mysql

# 3. PHP 擴(kuò)展層
RUN pecl install redis \
    && docker-php-ext-enable redis

# 4. 應(yīng)用層
COPY . /var/www
RUN composer install --no-dev --optimize-autoloader

# 5. 配置層
COPY php.ini /usr/local/etc/php/

故障排查

常見(jiàn)問(wèn)題

# 查看構(gòu)建歷史
docker history ccr.ccs.tencentyun.com/crmebky_php/crmebky:latest

# 進(jìn)入容器調(diào)試
docker exec -it <容器名> bash

# 查看資源使用
docker stats <容器名>

# 查看日志
docker logs -f <容器名>

# 查看構(gòu)建過(guò)程中的詳細(xì)日志
docker buildx build --platform linux/amd64,linux/arm64 \
  -t ccr.ccs.tencentyun.com/crmebky_php/crmebky:latest \
  --push ./docker-compose-dev/allinone --progress=plain

構(gòu)建失敗檢查清單

  • Docker 版本 ≥ 20.10.0
  • 已登錄騰訊云鏡像倉(cāng)庫(kù)
  • Buildx 構(gòu)建器已創(chuàng)建并啟用(使用 docker buildx use multiarch
  • 包含 --platform linux/amd64,linux/arm64 參數(shù)
  • 包含 --push 參數(shù)推送鏡像
  • 基礎(chǔ)鏡像支持多架構(gòu)
  • 網(wǎng)絡(luò)連接正常,能夠訪問(wèn)鏡像倉(cāng)庫(kù)和基礎(chǔ)鏡像源

安全最佳實(shí)踐

  1. 非 root 用戶運(yùn)行
RUN groupadd -g 1000 www && useradd -u 1000 -g www www
USER www
  1. 敏感信息管理
  • 使用環(huán)境變量注入敏感信息
  • 避免密碼硬編碼
  • 使用專用鏡像倉(cāng)庫(kù)賬號(hào)
  • 不在 Dockerfile 中包含敏感信息
  1. 最小化攻擊面
  • 只暴露必要端口
  • 使用官方基礎(chǔ)鏡像
  • 定期更新基礎(chǔ)鏡像
  • 移除不需要的軟件和服務(wù)

性能優(yōu)化

  • 將不常變化的操作放在 Dockerfile 前面,利用 Docker 緩存
  • 分離依賴安裝和代碼復(fù)制
  • 啟用 OPcache 提高 PHP 性能
  • 配置適當(dāng)?shù)?PHP-FPM 進(jìn)程數(shù)
  • 使用 Redis 緩存減輕數(shù)據(jù)庫(kù)壓力
  • 優(yōu)化 Nginx 配置,啟用 gzip 壓縮
  • 使用多階段構(gòu)建減小鏡像體積

適用版本: CRMEB 商城系統(tǒng) v2.0

到此這篇關(guān)于Trae快速構(gòu)建自己項(xiàng)目的docker鏡像的文章就介紹到這了,更多相關(guān)Trae構(gòu)建docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

肇东市| 和平区| 中牟县| 任丘市| 麻栗坡县| 买车| 广水市| 珠海市| 东阿县| 简阳市| 湘潭市| 崇左市| 景宁| 宜兴市| 武鸣县| 洛南县| 德庆县| 资阳市| 淮安市| 乌鲁木齐县| 韩城市| 上高县| 黔西| 工布江达县| 淮滨县| 池州市| 民丰县| 那曲县| 长子县| 固原市| 峨眉山市| 拉萨市| 宣武区| 永登县| 凌海市| 安化县| 遵化市| 炉霍县| 广宗县| 化德县| 泰宁县|