reactjs - 如何使用 ansbile 为 nginx 构建 reactjs 文件,然后将这些文件同步到 ansible 库存?
问题描述
我有一个 ReactJS 应用程序,我可以从中为网络服务器构建资产文件。对于这种方法,我使用 Docker 容器。
Container In Use: node:12-alpine
App Data:./app
然后将其挂载到/app
容器中。
所以我可以像这样直接运行一个docker容器来构建这些js文件
# docker container run -ti --name builder \
-v $PWD/app:/app -w /app node:12-alpine \
sh -c "apk update -qq && \
apk add git -qq && \
NODE_ENV=development npm install && \
mkdir dist && \
npm run build:staging"
现在我正在尝试用 ansible 自动化所有这些,所以这里是任务
- name: Run Container
docker_container:
name: "{{ container }}"
image: "{{ image }}"
volumes: "{{ lookup('env', 'PWD') }}/app:/app"
working_dir: "/app"
command: "{{ command }}"
state: present
delegate_to: localhost
- name: Update Frontend
synchronize:
src: "{{ lookup('env', 'PWD') }}/{{ component }}/dist/"
dest: "/{{ parent }}/{{ component }}"
archive: no
compress: yes
recursive: yes
delete: yes
以下是命令中使用的一些变量
image: "node:12-alpine"
container: "builder"
command: "docker container exec -ti {{ container }} sh -c builder.sh"
容器运行,但似乎没有运行指定的命令,builder.sh 带有用于编译的相同命令
# cat builder.sh
apk update -qq
apk add git -qq
NODE_ENV=development npm install
mkdir dist
npm run build:staging
我是否必须使builder.sh
可执行或缺少其他内容?另外,我希望synchronize
在容器中完成构建过程后执行模块。有什么方法可以做到这一点?
解决方案
将此部分与 DockerFile 一起使用。
# cat builder.sh
apk update -qq
apk add git -qq
NODE_ENV=development npm install
mkdir dist
- name: Run Container
docker_container:
name: "{{ container }}"
image: "{{ image }}"
volumes: "{{ lookup('env', 'PWD') }}/app:/app"
working_dir: "/app"
recreate: yes
command: "npm run build:staging"
state: started
delegate_to: localhost
- name: Update Frontend
synchronize:
src: "{{ lookup('env', 'PWD') }}/{{ component }}/dist/"
dest: "/{{ parent }}/{{ component }}"
archive: no
compress: yes
recursive: yes
delete: yes
推荐阅读
- appium - 如何在 Eclipse 中为 Appium Server 修复 URL 定义
- arrays - 如何从json中提取多层数组
- angular - Angular:AuthGuard 中的浏览器刷新处理
- mysql - 替换模板智能标签 <
> 到 [标签] 在 mysql - python - 如何返回仅包含特定单词的行
- php - 无法根据php数据库上的数组数据匹配日期
- elasticsearch - 如何在 Kibana 控制台编辑器的正文中进行评论
- html - 无限滚动 div 中自动换行的 CSS 问题
- css - 如何在网格显示的每一下一行中给一个列空间
- python - 不同类型映射器的 Django Elasticsearch DSL TransportError