分享工作环境docker配置
2022-07-16 10:32:53

不知道有没有人跟我一样,不太想在本地安装环境,搞得电脑东西太乱。所以决定用docker容器来当作工作环境。

下面是我自己配置的docker-composer。

php的相关扩展需要进入到容器自定义安装,docker容器有命令docker-php-ext-install <扩展名称>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: "3.3"  


volumes:
unison-sync: #docker-sync自定义名称
external: true
networks:
php:

services:
nginx:
image: "nginx"
ports:
- "80:80"
volumes:
# - ./:/var/www/html
- unison-sync:/var/www/html/:nocopy #项目目录
networks:
- php
php:
image: "php:7.4.29-fpm" #php版本
ports:
- "9000:9000"
volumes:
# - ./:/var/www/html:cached
- unison-sync:/var/www/html/:nocopy
stdin_open: true
tty: true
networks:
- php
redis:
image: "redis"
ports:
- "6379:6379"
networks:
- php

但是发现用docker会遇到一些问题,比如说本地进行api调试到时候,响应会非常慢,并不是代码性能问题,是因为laravel一个生命周期需要加载到文件太多了,导致整个响应非常慢,调试起来也很头疼。

所以我找到了一个docker-sync的应用,可以提升执行的效率。配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '2'  

options:
verbose: false

syncs:
incubator-unison-sync: #docker-sync容器名称
# 需要挂载的目录
src: './'
# 同步策略 macOS 推荐 native_osx,Windows 配置为 unison sync_strategy: native_osx
# 这里的用户 ID 为 1000,请确认你的 php-fpm 为同一个用户
# sync_userid: 1000
# 忽略的文件
sync_excludes: [
'./.gitignore',
'./.git/',
'./.DS_Store',
'./.idea/',
]