You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Ansible从控制机将网站内容复制到Docker容器

解决Ansible部署Docker容器时本地网页目录挂载失效问题

问题核心

你遇到的问题是控制节点的myweb目录未同步到目标Docker主机,直接使用{{ playbook_dir }}/myweb作为挂载源,会让目标主机尝试挂载自身不存在的路径(playbook_dir是控制端本地路径),导致容器内仍显示Apache默认页面。

解决方案步骤

1. 同步控制端网页目录到目标主机

在Ansible剧本中添加任务,将控制端的myweb目录复制到目标主机的固定路径(例如/opt/myweb):

- name: 同步控制端网页目录到目标主机
  synchronize:
    src: "{{ playbook_dir }}/myweb/"
    dest: "/opt/myweb/"
    rsync_opts:
      - "--chown=www-data:www-data"  # 匹配Apache容器的运行用户权限

若未安装rsync,可改用copy模块(适合小目录):

- name: 复制控制端网页目录到目标主机
  copy:
    src: "{{ playbook_dir }}/myweb/"
    dest: "/opt/myweb/"
    owner: www-data
    group: www-data
    mode: '0755'

2. 修改容器挂载路径为目标主机路径

更新container_configs中的volumes配置,将源路径替换为目标主机的本地路径:

volumes:
  - "/opt/myweb:/usr/local/apache2/htdocs"

3. 确保目标主机目录权限正确

如果使用synchronize模块,需单独添加权限配置任务:

- name: 设置网页目录权限
  file:
    path: "/opt/myweb"
    state: directory
    owner: www-data
    group: www-data
    recurse: yes
    mode: '0755'

修改后的关键剧本片段

# ... 保留原有Docker安装、网络创建等任务 ...

- name: 同步控制端网页目录到目标主机
  synchronize:
    src: "{{ playbook_dir }}/myweb/"
    dest: "/opt/myweb/"
    rsync_opts:
      - "--chown=www-data:www-data"

- name: 设置网页目录权限
  file:
    path: "/opt/myweb"
    state: directory
    owner: www-data
    group: www-data
    recurse: yes
    mode: '0755'

- name: 定义容器配置列表
  set_fact:
    container_configs:
      - name: 20024471_B9IS121-container-1
        image: httpd:latest
        volumes:
          - "/opt/myweb:/usr/local/apache2/htdocs"
        ports:
          - "8080:80"
        networks:
          - name: 20024471_B9IS121-network
            ipv4_address: 172.168.11.2
        networks_cli_compatible: yes
        container_default_behavior: compatibility
        network_mode: default

# ... 保留原有容器部署任务 ...

验证方法

部署完成后执行以下操作确认:

  1. 在目标主机检查目录内容:ls /opt/myweb,确认文件已同步。
  2. 进入容器检查挂载:docker exec -it 20024471_B9IS121-container-1 ls /usr/local/apache2/htdocs,确认自定义文件存在。
  3. 访问http://目标主机IP:8080,验证是否显示自定义网页。

内容的提问来源于stack exchange,提问作者Dig The Code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:34:50