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

使用Docker自動化部署項目的全過程

 更新時間:2025年07月11日 14:39:07   作者:海綿寶寶de派小星  
文章介紹了兩個項目的Docker部署方案:一是通過Dockerfile構(gòu)建Boost搜索引擎鏡像并配置依賴庫,二是使用docker-compose編排Web應(yīng)用、MySQL、Redis及編譯器服務(wù),實現(xiàn)多容器協(xié)同部署與環(huán)境隔離

本篇主要是利用Docker為我的兩個項目進行添加自動化部署

部署B(yǎng)oost搜索引擎

Dockerfile

對于部署來說,要先使用Dockerfile把鏡像完善好:

# 使用Ubuntu 22.04作為基礎(chǔ)鏡像,包含C++編譯器
FROM ubuntu:22.04 AS builder

# 更換軟件源
RUN sed -i 's/archive.ubuntu.com/mirrors.tencentyun.com/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.tencentyun.com/g' /etc/apt/sources.list

# 更新系統(tǒng)包并安裝構(gòu)建工具和必要的庫
RUN apt update
RUN apt install -y \
    g++ \
    make \
    libboost-all-dev \
    libjsoncpp-dev \
    git \
    redis-server \
    libhiredis-dev \
    cmake \
    mysql-server \
    libmysql++-dev

RUN git clone https://gitcode.com/sewenew/redis-plus-plus.git
WORKDIR /redis-plus-plus/build
RUN cmake ..
RUN make
RUN make install

WORKDIR /

RUN git clone https://gitcode.com/nlohmann/json.git
RUN cp -r json/include/* /usr/local/include/

RUN rm -rf /var/lib/apt/lists/*

# 設(shè)置工作目錄
WORKDIR /usr/src/app

# 將項目源碼復(fù)制到容器中
COPY . .

# 編譯項目
RUN make clean
RUN make

# 暴露端口
EXPOSE 8081

# 啟動命令,直接指定可執(zhí)行文件名
CMD ["./http_server"]

這是一個Dockerfile的內(nèi)容,用于構(gòu)建一個基于Ubuntu 22.04操作系統(tǒng)的Docker鏡像,主要目的是部署一個C++編寫的應(yīng)用程序,該程序似乎是一個HTTP服務(wù)器。

以下是逐行的解釋:

FROM ubuntu:22.04 AS builder

  • 使用官方Ubuntu 22.04 LTS(長期支持)版本作為基礎(chǔ)鏡像,并標(biāo)記這一階段為builder。
  • 這意味著此鏡像將用于構(gòu)建過程。

接下來的兩個RUN sed命令

  • 更改APT(Advanced Package Tool)的軟件源地址,由默認(rèn)的Ubuntu倉庫地址更改為騰訊云的鏡像源,這通常是為了加速在中國地區(qū)的軟件包下載速度。

RUN apt update && …

  • 更新軟件包列表并安裝一系列開發(fā)和運行時所需的軟件包,包括G++(C++編譯器)、make(用于編譯源代碼)、Boost庫、jsoncpp庫(用于處理JSON數(shù)據(jù))、Git(版本控制系統(tǒng))、Redis服務(wù)器及其開發(fā)庫、CMake(用于構(gòu)建C++項目)、MySQL服務(wù)器及其C++連接庫等。

克隆并構(gòu)建redis-plus-plus

  • 克隆redis-plus-plus倉庫,這是一個高性能的C++ Redis客戶端。
  • 切換到redis-plus-plusbuild目錄,執(zhí)行CMake配置、編譯以及安裝步驟,以便在系統(tǒng)中安裝此庫。

克隆nlohmann/json

  • 克隆nlohmann/json庫,這是一個流行的C++ JSON解析庫。
  • 然后將該庫的頭文件復(fù)制到/usr/local/include/目錄,使得這些頭文件對系統(tǒng)全局可見。

RUN rm -rf /var/lib/apt/lists/*:

  • 刪除APT的緩存和列表文件,以減少最終鏡像的大小。

WORKDIR /usr/src/app

  • 設(shè)置工作目錄為/usr/src/app,這通常是項目源代碼放置的地方。

COPY . .

  • 復(fù)制當(dāng)前目錄下的所有文件到容器中的工作目錄,即將應(yīng)用的源代碼復(fù)制進容器。

RUN make clean && RUN make

  • 執(zhí)行make clean清理之前可能存在的編譯產(chǎn)物,然后重新編譯項目。

EXPOSE 8081

  • 聲明容器將在8081端口上監(jiān)聽,為外界提供服務(wù)訪問入口。

CMD [“./http_server”]

  • 指定容器啟動時運行的命令,即直接執(zhí)行名為http_server的可執(zhí)行文件,這應(yīng)該是應(yīng)用的主進程,負(fù)責(zé)啟動HTTP服務(wù)器。

總結(jié)起來:

這個Dockerfile構(gòu)建了一個包含特定C++應(yīng)用程序的環(huán)境,該程序依賴于Redis、JSON處理能力,可能還涉及MySQL數(shù)據(jù)庫交互,并且在容器啟動后自動運行一個HTTP服務(wù)器監(jiān)聽8081端口。

docker-compose.yml

之后要使用Compose編排,對于這個項目所需要的三個部分:web服務(wù),Redis,MySQL進行編排

version: '3.8'  

services:  
  db:  
    image: mysql:5.7  
    restart: always  
    environment:  
      MYSQL_ROOT_PASSWORD: ZBH123456  
      MYSQL_DATABASE: boost_search  
      MYSQL_USER: zbh123  
      MYSQL_PASSWORD: ZBH12345678  
    volumes:  
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
    networks:
      - my_custom_network

  redis:  
    image: redis:latest
    restart: always
    networks:
      - my_custom_network

  webapp:  
    build: .
    restart: always  
    ports:  
      - "10000:8081"  
    environment:  
      DB_HOST: db  
      DB_PORT: 3306  
      DB_NAME: boost_search  
      DB_USER: zbh123  
      DB_PASSWORD: ZBH12345678  
      REDIS_NAME: redis
      REDIS_PORT: 6379
    depends_on:  
      - db  
      - redis
    networks:
      - my_custom_network
  
volumes:  
  db_data:  
  
networks:
  my_custom_network:
    driver: bridge

下面是對于這個docker-compose文件的解釋:

這是一個用于Docker Compose的YAML配置文件,版本為3.8

Docker Compose是一個工具,允許用戶在一個YAML文件中定義和配置多個Docker容器以及它們之間的依賴關(guān)系,從而簡化了多容器應(yīng)用的部署和服務(wù)管理。

下面是對該配置文件各部分的詳細(xì)解釋:

版本聲明

version: '3.8'

指定了Docker Compose文件的版本,這里是3.8。不同的版本可能支持不同的功能特性。

服務(wù)定義(services)

services:
  db:
    # ...
  redis:
    # ...
  webapp:
    # ...

這部分定義了三個服務(wù):db(數(shù)據(jù)庫服務(wù),使用MySQL)、redis(緩存服務(wù),使用Redis)和webapp(Web應(yīng)用程序服務(wù))。

db 服務(wù)

  • image: mysql:5.7 指定使用MySQL 5.7鏡像。
  • restart: always 表示容器總是會在退出后重啟。
  • environment: 設(shè)置環(huán)境變量,包括數(shù)據(jù)庫的根密碼、數(shù)據(jù)庫名、用戶名和密碼。
  • volumes: 映射本地./init.sql文件到容器內(nèi)的/docker-entrypoint-initdb.d/init.sql,用于初始化數(shù)據(jù)庫。
  • networks: 將服務(wù)加入自定義網(wǎng)絡(luò)my_custom_network。

redis 服務(wù)

  • image: 使用最新版Redis鏡像。
  • restart: 同上,設(shè)置為始終重啟。
  • networks: 加入my_custom_network網(wǎng)絡(luò)。

webapp 服務(wù)

  • build: 使用當(dāng)前目錄下的Dockerfile構(gòu)建鏡像。
  • restart: 設(shè)置為始終重啟。
  • ports: 映射宿主機的10000端口到容器的8081端口,用于訪問Web應(yīng)用。
  • environment: 設(shè)置環(huán)境變量,包括數(shù)據(jù)庫連接信息和Redis連接信息。
  • depends_on: 指定webapp服務(wù)依賴于dbredis服務(wù),確保這兩個服務(wù)先啟動。
  • networks: 加入my_custom_network網(wǎng)絡(luò)。

數(shù)據(jù)卷定義(volumes)

volumes:
  db_data:

定義了一個名為db_data的數(shù)據(jù)卷,但在這個配置中未直接使用。通常用于持久化數(shù)據(jù)庫數(shù)據(jù),但這里可能是預(yù)留或注釋掉了實際掛載點。

網(wǎng)絡(luò)定義(networks)

networks:
  my_custom_network:
    driver: bridge

定義了一個自定義網(wǎng)絡(luò)my_custom_network,類型為bridge(橋接網(wǎng)絡(luò))。所有服務(wù)都連接到這個網(wǎng)絡(luò),允許它們之間通過服務(wù)名稱相互通信,而無需暴露不必要的端口到宿主機網(wǎng)絡(luò)。

總結(jié)起來,這個Docker Compose配置文件定義了一個包含MySQL數(shù)據(jù)庫、Redis緩存和一個Web應(yīng)用程序的多容器環(huán)境,各個服務(wù)通過自定義網(wǎng)絡(luò)互聯(lián),并且具備自動重啟、環(huán)境變量配置和端口映射等特性,適合快速搭建和部署一個具備數(shù)據(jù)庫和緩存支持的Web應(yīng)用開發(fā)或測試環(huán)境。

部署online judge

Dockerfile

# 使用Ubuntu 22.04作為基礎(chǔ)鏡像,包含C++編譯器
FROM ubuntu:22.04 AS builder

# 更換軟件源
RUN sed -i 's/archive.ubuntu.com/mirrors.tencentyun.com/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.tencentyun.com/g' /etc/apt/sources.list

# 更新系統(tǒng)包并安裝構(gòu)建工具和必要的庫
RUN apt update
RUN apt install -y \
    g++ \
    make \
    libboost-all-dev \
    libjsoncpp-dev \
    git \
    redis-server \
    libhiredis-dev \
    cmake \
    mysql-server \
    libmysql++-dev

WORKDIR /

RUN git clone https://gitcode.com/sewenew/redis-plus-plus.git
WORKDIR /redis-plus-plus/build
RUN cmake ..
RUN make
RUN make install
    
WORKDIR /

RUN git clone https://gitee.com/mirrors_OlafvdSpek/ctemplate.git
WORKDIR /ctemplate
RUN ./autogen.sh
RUN ./configure
RUN make
RUN make install

WORKDIR /

RUN git clone https://gitcode.com/nlohmann/json.git
RUN cp -r json/include/* /usr/local/include/

RUN rm -rf /var/lib/apt/lists/*

# 設(shè)置工作目錄
WORKDIR /usr/src/app

# 將項目源碼復(fù)制到容器中
COPY . .

# 設(shè)置 LD_LIBRARY_PATH 環(huán)境變量  
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64:/lib64:/usr/lib:/lib:/opt/lib:$LD_LIBRARY_PATH 

# 編譯項目
RUN make
RUN make output

# 現(xiàn)在運行oj_server服務(wù)
WORKDIR /usr/src/app/output/oj_server

# 暴露端口
EXPOSE 8080

# 啟動命令,直接指定可執(zhí)行文件名
CMD ["./oj_server"]

這是一個Dockerfile的內(nèi)容,用于構(gòu)建一個包含特定C++應(yīng)用程序的Docker鏡像。

下面是對每一行指令的解釋:

FROM ubuntu:22.04 AS builder

  • 從Ubuntu 22.04鏡像開始構(gòu)建,并標(biāo)記此階段為“builder”。這將作為后續(xù)構(gòu)建步驟的基礎(chǔ)環(huán)境,包含了C++編譯器。

接下來的兩個RUN命令

  • 修改系統(tǒng)的軟件源列表,用騰訊云的鏡像源替換默認(rèn)的Ubuntu源,以提高在中國地區(qū)的下載速度和穩(wěn)定性。

RUN apt update && …

  • 更新軟件包列表,并安裝一系列構(gòu)建工具和庫,包括但不限于g++(C++編譯器)、make(構(gòu)建工具)、Boost庫、jsoncpp庫、git、Redis服務(wù)器及其開發(fā)庫、CMake、MySQL服務(wù)器及其C++開發(fā)庫等。

WORKDIR /

  • 設(shè)置工作目錄為根目錄。

接下來的幾個RUN命令

  • 克隆redis-plus-plus倉庫,構(gòu)建并安裝它。這是一個基于C++的Redis客戶端庫。
  • 克隆ctemplate倉庫,這是Google的模板庫,用于快速生成文本輸出。執(zhí)行配置、編譯和安裝步驟。
  • 克隆nlohmann/json倉庫,然后將其頭文件復(fù)制到系統(tǒng)默認(rèn)的包含路徑,以便于其他項目使用。

RUN rm -rf /var/lib/apt/lists/*:

  • 清理下載的軟件包列表和緩存,減小最終鏡像的大小。

WORKDIR /usr/src/app

  • 切換工作目錄至應(yīng)用代碼的預(yù)期位置。

COPY . .

  • 將當(dāng)前目錄下的所有文件復(fù)制到容器內(nèi)的/usr/src/app目錄下,即把項目源代碼復(fù)制進容器。

ENV LD_LIBRARY_PATH=…

  • 設(shè)置環(huán)境變量LD_LIBRARY_PATH,指向包含庫文件的目錄,確保動態(tài)鏈接時能找到這些庫。

RUN make && RUN make output

  • 編譯項目并執(zhí)行特定的構(gòu)建目標(biāo)(假設(shè)項目中有相應(yīng)的Makefile規(guī)則來處理這些命令)。

WORKDIR /usr/src/app/output/oj_server

  • 進入到可執(zhí)行文件所在的目錄,這里假設(shè)oj_server是編譯輸出的可執(zhí)行文件。

EXPOSE 8080

  • 聲明容器將在8080端口上監(jiān)聽,便于外部訪問服務(wù)。

CMD [“./oj_server”]

  • 容器啟動時執(zhí)行的命令,直接運行oj_server可執(zhí)行文件。

綜上所述,這個Dockerfile用于創(chuàng)建一個自定義的Docker鏡像,其中集成了Redis客戶端、CTemplate庫、nlohmann/json庫,并編譯安裝了一個名為oj_server的應(yīng)用程序,對外提供HTTP服務(wù)(監(jiān)聽8080端口)。

通過使用特定的構(gòu)建步驟和庫,該鏡像確保了應(yīng)用運行所需的全部依賴都被正確安裝和配置。

docker-compose.yml

version: '3.8'  

services:
  db:  
    image: mysql:5.7  
    restart: always  
    environment:  
      MYSQL_ROOT_PASSWORD: ZBH123456  
      MYSQL_DATABASE: oj  
      MYSQL_USER: zbh  
      MYSQL_PASSWORD: 123456  
    volumes:  
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql
    networks:
      - my_custom_network

  # db:  
  #   image: mysql:5.7  
  #   restart: always  
  #   environment:  
  #     MYSQL_ROOT_PASSWORD: ZBH123456  
  #     MYSQL_DATABASE: boost_search  
  #     MYSQL_USER: zbh123  
  #     MYSQL_PASSWORD: ZBH12345678  
  #   volumes:  
  #     - ./init.sql:/docker-entrypoint-initdb.d/init.sql
  #   networks:
  #     - my_custom_network

  redis:  
    image: redis:latest
    restart: always
    networks:
      - my_custom_network

  server:
    build:
      context: .
      dockerfile: Dockerfile.server
    ports:
      - "9999:8080"
    environment:  
      DB_HOST: db  
      DB_PORT: 3306  
      DB_NAME: oj  
      DB_USER: zbh  
      DB_PASSWORD: 123456  
      # DB_HOST: db  
      # DB_PORT: 3306  
      # DB_NAME: boost_search  
      # DB_USER: zbh123  
      # DB_PASSWORD: ZBH12345678  
      REDIS_HOST: redis
      REDIS_PORT: 6379
      REDIS_NAME: redis
    depends_on:  
      - db  
      - redis
      - compiler1
      - compiler2
      - compiler3
    networks:
      - my_custom_network

  compiler1:
    build:
      context: .
      dockerfile: Dockerfile.compile1
    networks:
      - my_custom_network

  compiler2:
    build:
      context: .
      dockerfile: Dockerfile.compile2
    networks:
      - my_custom_network

  compiler3:
    build:
      context: .
      dockerfile: Dockerfile.compile3
    networks:
      - my_custom_network
  
volumes:  
  db_data:  
  
networks:
  my_custom_network:
    driver: bridge

這是一個Docker Compose的配置文件,用于定義一組相互關(guān)聯(lián)的Docker服務(wù),協(xié)同工作以構(gòu)成一個完整的應(yīng)用環(huán)境。下面是該配置文件的詳細(xì)解釋:

版本聲明

version: '3.8'指定了使用Docker Compose的版本3.8,這個版本提供了服務(wù)編排和服務(wù)網(wǎng)絡(luò)的高級特性。

服務(wù)定義

db服務(wù)

  • image: 使用mysql:5.7鏡像作為數(shù)據(jù)庫服務(wù)。
  • restart: 設(shè)置為always,意味著當(dāng)容器停止或崩潰時,Docker會自動重啟該容器。
  • environment: 配置MySQL的環(huán)境變量,包括root用戶的密碼、數(shù)據(jù)庫名、用戶名及密碼。
  • volumes: 映射本地的./init.sql文件到容器內(nèi)的/docker-entrypoint-initdb.d/init.sql,用于數(shù)據(jù)庫初始化。
  • networks: 加入自定義網(wǎng)絡(luò)my_custom_network,便于服務(wù)間通信。

redis服務(wù)

  • 使用redis:latest鏡像作為Redis緩存服務(wù),配置與db服務(wù)類似,具有自動重啟和網(wǎng)絡(luò)配置。

server服務(wù)

  • build: 通過指定上下文目錄.和Dockerfile文件Dockerfile.server來構(gòu)建鏡像。
  • ports: 映射容器的8080端口到宿主機的9999端口,供外部訪問。
  • environment: 設(shè)置環(huán)境變量,用于連接數(shù)據(jù)庫和Redis服務(wù),注意這里使用了oj數(shù)據(jù)庫的相關(guān)配置。
  • depends_on: 表明server服務(wù)依賴于db、redis、以及三個compiler服務(wù),確保這些依賴服務(wù)先啟動。
  • networks: 同樣加入my_custom_network。

compiler1, compiler2, compiler3服務(wù)

  • 分別通過不同的Dockerfile(Dockerfile.compile1, Dockerfile.compile2, Dockerfile.compile3)構(gòu)建,用于編譯任務(wù),每個服務(wù)也加入到了相同的網(wǎng)絡(luò)中。

數(shù)據(jù)卷

  • db_data: 雖然定義了數(shù)據(jù)卷,但在db服務(wù)中沒有直接使用,通常這樣的數(shù)據(jù)卷用于持久化數(shù)據(jù)庫數(shù)據(jù),避免數(shù)據(jù)丟失。

網(wǎng)絡(luò)定義

  • my_custom_network: 定義了一個自定義網(wǎng)絡(luò),類型為bridge(橋接網(wǎng)絡(luò)),用于服務(wù)間的通信隔離與連接。

總結(jié)

該Docker Compose配置設(shè)計了一個包含MySQL數(shù)據(jù)庫、Redis緩存、一個主服務(wù)器應(yīng)用以及三個獨立編譯器服務(wù)的環(huán)境。

這些服務(wù)共享一個自定義網(wǎng)絡(luò),可以相互通信,并且數(shù)據(jù)庫服務(wù)的數(shù)據(jù)可以通過數(shù)據(jù)卷持久化。服務(wù)器應(yīng)用能夠訪問數(shù)據(jù)庫和Redis,同時依賴于多個編譯器服務(wù)協(xié)同工作。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker?Buildx實現(xiàn)掛載緩存卷的3種高階應(yīng)用場景

    Docker?Buildx實現(xiàn)掛載緩存卷的3種高階應(yīng)用場景

    本文主要介紹了緩存卷掛載的3種高階應(yīng)用場景,涵蓋多階段構(gòu)建、跨平臺編譯與CI/CD流水線中的實戰(zhàn)技巧,提升鏡像構(gòu)建效率與資源利用率,顯著縮短構(gòu)建時間,感興趣的可以了解一下
    2026-05-05
  • docker安裝redis掛載容器卷同時開啟持久化

    docker安裝redis掛載容器卷同時開啟持久化

    本文主要介紹了docker安裝redis掛載容器卷同時開啟持久化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Linux/Docker 中使用 System.Drawing.Common 踩坑記錄分享

    Linux/Docker 中使用 System.Drawing.Common 踩坑記錄分享

    這篇文章主要介紹了Linux/Docker 中使用 System.Drawing.Common 踩坑記錄,本文通過兩種方案給大家詳細(xì)介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • docker安裝RabbitMQ詳細(xì)步驟

    docker安裝RabbitMQ詳細(xì)步驟

    大家好,本篇文章主要講的是docker安裝RabbitMQ詳細(xì)步驟,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Docker獲取容器mac地址和手動設(shè)置容器mac地址

    Docker獲取容器mac地址和手動設(shè)置容器mac地址

    獲取容器的 MAC 地址 可以使用 docker inspect 命令來查看容器的詳細(xì)信息,包括 MAC 地址。 示例: 這條命令會輸出容器 my_container 的 MAC 地址。 手動設(shè)置容器
    2026-02-02
  • Linux下Docker安裝配置教程

    Linux下Docker安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了Linux下Docker安裝配置教程,步驟簡單清晰,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • docker容器中nginx 502 Bad Gateway問題及解決

    docker容器中nginx 502 Bad Gateway問題及解決

    這篇文章主要介紹了docker容器中nginx 502 Bad Gateway問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • docker中使用mysql數(shù)據(jù)庫實現(xiàn)局域網(wǎng)訪問

    docker中使用mysql數(shù)據(jù)庫實現(xiàn)局域網(wǎng)訪問

    在本篇內(nèi)容里小編給大家整理了關(guān)于docker中使用mysql數(shù)據(jù)庫實現(xiàn)局域網(wǎng)訪問相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • 查看docker是否處于啟動狀態(tài)的方法詳解

    查看docker是否處于啟動狀態(tài)的方法詳解

    Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,本文主要給大家介紹了查看docker是否處于啟動狀態(tài)的方法,需要的朋友可以參考下
    2024-06-06
  • Docker部署常見應(yīng)用之SFTP服務(wù)器詳解

    Docker部署常見應(yīng)用之SFTP服務(wù)器詳解

    這篇文章主要介紹了Docker部署常見應(yīng)用之SFTP服務(wù)器,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06

最新評論

从江县| 怀安县| 黄大仙区| 平乡县| 金昌市| 奈曼旗| 丰都县| 如东县| 黄龙县| 丰顺县| 新密市| 曲周县| 安塞县| 横峰县| 井研县| 昭平县| 金门县| 木兰县| 新兴县| 西和县| 铁岭市| 南澳县| 泽库县| 班戈县| 安国市| 英山县| 象州县| 维西| 通山县| 大埔县| 和硕县| 河南省| 九龙县| 额尔古纳市| 柳江县| 肇庆市| 芮城县| 桂阳县| 星子县| 平罗县| 通辽市|