@wocker/ws 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wocker/ws",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "author": "Kris Papercut <krispcut@gmail.com>",
5
5
  "description": "Docker workspace for web projects",
6
6
  "license": "MIT",
@@ -44,7 +44,7 @@
44
44
  "reflect-metadata": "^0.2.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@types/dockerode": "^3.3.23",
47
+ "@types/dockerode": "3.3.23",
48
48
  "@types/inquirer": "^7.0.0",
49
49
  "@types/jest": "^29.5.12",
50
50
  "@types/lodash": "^4.14.161",
@@ -58,6 +58,6 @@
58
58
  "eslint-plugin-import": "^2.28.1",
59
59
  "eslint-plugin-node": "^11.1.0",
60
60
  "eslint-webpack-plugin": "^3.1.0",
61
- "typescript": "^5.3.3"
61
+ "typescript": "^5.4.2"
62
62
  }
63
63
  }
@@ -22,10 +22,24 @@ RUN apt-get install -y curl git
22
22
  # libssl-dev \
23
23
  # zlib1g-dev
24
24
 
25
+ # Http
26
+ ARG HTTP_ENABLE=false
27
+ RUN if [ "$HTTP_ENABLE" = "true" ]; then \
28
+ apt-get update && apt-get install -y \
29
+ libpcre3-dev \
30
+ libssl-dev \
31
+ libcurl4-openssl-dev \
32
+ libicu-dev \
33
+ g++ \
34
+ zlib1g-dev && \
35
+ docker-php-ext-install pcntl && \
36
+ pecl install raphf && docker-php-ext-enable raphf && \
37
+ pecl install pecl_http && docker-php-ext-enable http; \
38
+ fi
39
+
25
40
  # Mysqli
26
41
  ARG MYSQLI_ENABLE=false
27
42
  RUN if [ "$MYSQLI_ENABLE" = "true" ]; then \
28
- echo "Install mysqli" && \
29
43
  docker-php-ext-install -j "$(nproc)" mysqli && \
30
44
  docker-php-ext-enable mysqli; \
31
45
  fi
@@ -62,13 +76,85 @@ RUN if [ "$GD_ENABLE" = "true" ]; then \
62
76
  # Zip
63
77
  ARG ZIP_ENABLE=false
64
78
  RUN if [ "$ZIP_ENABLE" = "true" ]; then \
65
- apt-get install -y \
66
- libzip-dev \
67
- zip && \
79
+ apt-get install -y libzip-dev zip unzip && \
68
80
  docker-php-ext-configure zip && \
69
81
  docker-php-ext-install -j "$(nproc)" zip; \
70
82
  fi
71
83
 
84
+ # memcache
85
+ ARG MEMCACHE_ENABLE=false
86
+ RUN if [ "$MEMCACHE_ENABLE" = "true" ]; then \
87
+ apt-get update && apt-get install -y \
88
+ zlib1g-dev \
89
+ libmemcached-dev && \
90
+ pecl install memcache && docker-php-ext-enable memcache; \
91
+ fi
92
+
93
+ # memcached
94
+ ARG MEMCACHED_ENABLE=false
95
+ RUN if [ "$MEMCACHED_ENABLE" = "true" ]; then \
96
+ apt-get update && apt-get install -y \
97
+ libcurl4-openssl-dev \
98
+ libssl-dev \
99
+ libmemcached-dev \
100
+ zlib1g-dev && \
101
+ pecl install memcached && docker-php-ext-enable memcached; \
102
+ fi
103
+
104
+ # Intl
105
+ ARG INTL_ENABLE=false
106
+ RUN if [ "$INTL_ENABLE" = "true" ]; then \
107
+ apt-get update && apt-get install -y \
108
+ libicu-dev && \
109
+ docker-php-ext-configure intl && \
110
+ docker-php-ext-install intl; \
111
+ fi
112
+
113
+ # Pcntl
114
+ ARG PCNTL_ENABLE=false
115
+ RUN if [ "$PCNTL_ENABLE" = "true" ]; then \
116
+ docker-php-ext-install pcntl && \
117
+ docker-php-ext-enable pcntl; \
118
+ fi
119
+
120
+ # Soap
121
+ ARG SOAP_ENABLE=false
122
+ RUN if [ "$SOAP_ENABLE" = "true" ]; then \
123
+ apt-get update && apt-get install -y \
124
+ libxml2-dev && \
125
+ docker-php-ext-install soap && \
126
+ docker-php-ext-enable soap; \
127
+ fi
128
+
129
+ # XDebug
130
+ ARG XDEBUG_ENABLE=false
131
+ RUN if [ "$XDEBUG_ENABLE" = "true" ]; then \
132
+ pecl install xdebug && \
133
+ docker-php-ext-enable xdebug; \
134
+ fi \
135
+
136
+ # Gettext
137
+ ARG GETTEXT_ENABLE=false
138
+ RUN if [ "$GETTEXT_ENABLE" = "true" ]; then \
139
+ apt-get update && apt-get install -y gettext && \
140
+ docker-php-ext-install -j "$(nproc)" gettext && \
141
+ docker-php-ext-enable gettext; \
142
+ fi
143
+
144
+ # Bcmath
145
+ ARG BCMATH_ENABLE=false
146
+ RUN if [ "$BCMATH_ENABLE" = "true" ]; then \
147
+ docker-php-ext-install -j "$(nproc)" bcmath && \
148
+ docker-php-ext-enable bcmath; \
149
+ fi
150
+
151
+ # Sockets
152
+ ARG SOCKETS_ENABLE=false
153
+ RUN if [ "$SOCKETS_ENABLE" = "true" ]; then \
154
+ docker-php-ext-install sockets && \
155
+ docker-php-ext-enable sockets; \
156
+ fi
157
+
72
158
  #RUN compare-version $PHP_VERSION "7.3" && \
73
159
  # docker-php-ext-configure zip || \
74
160
  # docker-php-ext-configure zip --with-libzip
@@ -22,7 +22,17 @@
22
22
  "PDO_MYSQL_ENABLE": "PDO",
23
23
  "PGSQL_ENABLE": "Pgsql",
24
24
  "GD_ENABLE": "GD",
25
- "ZIP_ENABLE": "Zip"
25
+ "ZIP_ENABLE": "Zip",
26
+ "MEMCACHE_ENABLE": "Memcache",
27
+ "MEMCACHED_ENABLE": "Memcached",
28
+ "HTTP_ENABLE": "Raphf+Http",
29
+ "INTL_ENABLE": "Intl",
30
+ "PCNTL_ENABLE": "Pcntl",
31
+ "SOAP_ENABLE": "Soap",
32
+ "XDEBUG_ENABLE": "XDebug",
33
+ "GETTEXT_ENABLE": "GetText",
34
+ "BCMATH_ENABLE": "Bcmath",
35
+ "SOCKETS_ENABLE": "Sockets"
26
36
  }
27
37
  },
28
38
  "COMPOSER_ENABLE": {
@@ -2,20 +2,172 @@ ARG PHP_VERSION
2
2
 
3
3
  FROM php:${PHP_VERSION}-fpm
4
4
 
5
- #RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
5
+ # WS Tools
6
+ ADD ./bin/compare-version /usr/local/bin/compare-version
7
+ RUN chmod +x /usr/local/bin/compare-version
6
8
 
7
- #RUN touch /usr/local/bin/docker-entrypoint && \
8
- # echo "#!/bin/sh" >> /usr/local/bin/docker-entrypoint && \
9
- # echo "" >> /usr/local/bin/docker-entrypoint && \
10
- # echo "exec docker-php-entrypoint \"\$@\"" >> /usr/local/bin/docker-entrypoint && \
11
- # chmod 775 /usr/local/bin/docker-entrypoint && \
12
- # chmod +x /usr/local/bin/docker-entrypoint
9
+ RUN apt-get update --fix-missing -y && \
10
+ apt-get install -y curl git nginx && \
11
+ chown -R www-data:www-data /var/lib/nginx
13
12
 
14
- #ENV WORKDIR /var/www/html
15
- WORKDIR /var/www/html
13
+ # Http
14
+ ARG HTTP_ENABLE=false
15
+ RUN if [ "$HTTP_ENABLE" = "true" ]; then \
16
+ apt-get update && apt-get install -y \
17
+ libpcre3-dev \
18
+ libssl-dev \
19
+ libcurl4-openssl-dev \
20
+ libicu-dev \
21
+ g++ \
22
+ zlib1g-dev && \
23
+ docker-php-ext-install pcntl && \
24
+ pecl install raphf && docker-php-ext-enable raphf && \
25
+ pecl install pecl_http && docker-php-ext-enable http; \
26
+ fi
16
27
 
17
- EXPOSE 9000
28
+ # Mysqli
29
+ ARG MYSQLI_ENABLE=false
30
+ RUN if [ "$MYSQLI_ENABLE" = "true" ]; then \
31
+ docker-php-ext-install -j "$(nproc)" mysqli && \
32
+ docker-php-ext-enable mysqli; \
33
+ fi
34
+
35
+ # pdo
36
+ ARG PDO_MYSQL_ENABLE=false
37
+ RUN if [ "$PDO_MYSQL_ENABLE" = "true" ]; then \
38
+ docker-php-ext-install pdo pdo_mysql && \
39
+ docker-php-ext-enable pdo_mysql; \
40
+ fi
41
+
42
+ # pgsql
43
+ ARG PGSQL_ENABLE=false
44
+ RUN if [ "$PGSQL_ENABLE" = "true" ]; then \
45
+ apt-get install -y libpq-dev && \
46
+ docker-php-ext-install -j "$(nproc)" pgsql pdo_pgsql && \
47
+ docker-php-ext-enable pgsql pdo_pgsql; \
48
+ fi
49
+
50
+ #gd
51
+ ARG GD_ENABLE=false
52
+ RUN if [ "$GD_ENABLE" = "true" ]; then \
53
+ apt-get update && apt-get install -y \
54
+ libfreetype6-dev \
55
+ libjpeg62-turbo-dev \
56
+ libpng-dev && \
57
+ compare-version $PHP_VERSION "7.3" && \
58
+ docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include || \
59
+ docker-php-ext-configure gd --with-freetype --with-jpeg && \
60
+ docker-php-ext-install -j$(nproc) gd && \
61
+ docker-php-ext-install exif; \
62
+ fi
63
+
64
+ # Zip
65
+ ARG ZIP_ENABLE=false
66
+ RUN if [ "$ZIP_ENABLE" = "true" ]; then \
67
+ apt-get install -y libzip-dev zip unzip && \
68
+ docker-php-ext-configure zip && \
69
+ docker-php-ext-install -j "$(nproc)" zip; \
70
+ fi
71
+
72
+ # memcache
73
+ ARG MEMCACHE_ENABLE=false
74
+ RUN if [ "$MEMCACHE_ENABLE" = "true" ]; then \
75
+ apt-get update && apt-get install -y \
76
+ zlib1g-dev \
77
+ libmemcached-dev && \
78
+ pecl install memcache && docker-php-ext-enable memcache; \
79
+ fi
80
+
81
+ # memcached
82
+ ARG MEMCACHED_ENABLE=false
83
+ RUN if [ "$MEMCACHED_ENABLE" = "true" ]; then \
84
+ apt-get update && apt-get install -y \
85
+ libcurl4-openssl-dev \
86
+ libssl-dev \
87
+ libmemcached-dev \
88
+ zlib1g-dev && \
89
+ pecl install memcached && docker-php-ext-enable memcached; \
90
+ fi
91
+
92
+ # Intl
93
+ ARG INTL_ENABLE=false
94
+ RUN if [ "$INTL_ENABLE" = "true" ]; then \
95
+ apt-get update && apt-get install -y \
96
+ libicu-dev && \
97
+ docker-php-ext-configure intl && \
98
+ docker-php-ext-install intl; \
99
+ fi
100
+
101
+ # Pcntl
102
+ ARG PCNTL_ENABLE=false
103
+ RUN if [ "$PCNTL_ENABLE" = "true" ]; then \
104
+ docker-php-ext-install pcntl && \
105
+ docker-php-ext-enable pcntl; \
106
+ fi
107
+
108
+ # Soap
109
+ ARG SOAP_ENABLE=false
110
+ RUN if [ "$SOAP_ENABLE" = "true" ]; then \
111
+ apt-get update && apt-get install -y \
112
+ libxml2-dev && \
113
+ docker-php-ext-install soap && \
114
+ docker-php-ext-enable soap; \
115
+ fi
18
116
 
117
+ # XDebug
118
+ ARG XDEBUG_ENABLE=false
119
+ RUN if [ "$XDEBUG_ENABLE" = "true" ]; then \
120
+ pecl install xdebug && \
121
+ docker-php-ext-enable xdebug; \
122
+ fi
123
+
124
+ # Gettext
125
+ ARG GETTEXT_ENABLE=false
126
+ RUN if [ "$GETTEXT_ENABLE" = "true" ]; then \
127
+ apt-get update && apt-get install -y gettext && \
128
+ docker-php-ext-install -j "$(nproc)" gettext && \
129
+ docker-php-ext-enable gettext; \
130
+ fi
131
+
132
+ # Bcmath
133
+ ARG BCMATH_ENABLE=false
134
+ RUN if [ "$BCMATH_ENABLE" = "true" ]; then \
135
+ docker-php-ext-install -j "$(nproc)" bcmath && \
136
+ docker-php-ext-enable bcmath; \
137
+ fi
138
+
139
+ # Sockets
140
+ ARG SOCKETS_ENABLE=false
141
+ RUN if [ "$SOCKETS_ENABLE" = "true" ]; then \
142
+ docker-php-ext-install sockets && \
143
+ docker-php-ext-enable sockets; \
144
+ fi
145
+
146
+ # Composer
147
+ ARG COMPOSER_ENABLE=false
148
+
149
+ SHELL ["/bin/bash", "-c"]
150
+ RUN if [ "$COMPOSER_ENABLE" = "true" ]; then \
151
+ apt-get update && \
152
+ apt-get install -y bash-completion; \
153
+ echo "source /etc/bash_completion" >> /home/$USER/.bashrc; \
154
+ mkdir -p /home/$USER/.composer; \
155
+ curl -sL https://getcomposer.org/installer | php && \
156
+ mv composer.phar /usr/local/bin/composer && \
157
+ chmod +x /usr/local/bin/composer; \
158
+ echo ". <(composer completion bash)" >> /home/$USER/.bashrc; \
159
+ fi
160
+ SHELL ["/bin/sh", "-c"]
161
+
162
+ ARG WORKDIR=/var/www
163
+ ARG NGINX_DOCUMENT_ROOT=/var/www
164
+ WORKDIR $WORKDIR
165
+
166
+ ADD etc/nginx/sites-available/default.conf /tmp/default.conf.txt
167
+ RUN envsubst '\${NGINX_DOCUMENT_ROOT}' < /tmp/default.conf.txt > /etc/nginx/sites-available/default.conf
168
+
169
+ EXPOSE 80
170
+ EXPOSE 9000
19
171
 
20
- #ENTRYPOINT ["docker-entrypoint"]
21
- CMD ["php-fpm"]
172
+ #CMD ["nginx", "-g", "daemon off;"]
173
+ CMD service nginx start && php-fpm
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ printf '%s\n%s\n' "$2" "$1" | sort --check=quiet --version-sort
@@ -10,16 +10,45 @@
10
10
  "8.1",
11
11
  "8.2"
12
12
  ]
13
- }
14
- },
15
- "envOptions": {
13
+ },
14
+ "EXTENSIONS": {
15
+ "type": "select",
16
+ "multiple": true,
17
+ "message": "Extensions",
18
+ "options": {
19
+ "MYSQLI_ENABLE": "Mysqli",
20
+ "PDO_MYSQL_ENABLE": "PDO",
21
+ "PGSQL_ENABLE": "Pgsql",
22
+ "GD_ENABLE": "GD",
23
+ "ZIP_ENABLE": "Zip",
24
+ "MEMCACHE_ENABLE": "Memcache",
25
+ "MEMCACHED_ENABLE": "Memcached",
26
+ "HTTP_ENABLE": "Raphf+Http",
27
+ "INTL_ENABLE": "Intl",
28
+ "PCNTL_ENABLE": "Pcntl",
29
+ "SOAP_ENABLE": "Soap",
30
+ "XDEBUG_ENABLE": "XDebug",
31
+ "GETTEXT_ENABLE": "GetText",
32
+ "BCMATH_ENABLE": "Bcmath",
33
+ "SOCKETS_ENABLE": "Sockets"
34
+ }
35
+ },
36
+ "COMPOSER_ENABLE": {
37
+ "message": "Install composer?",
38
+ "type": "boolean"
39
+ },
16
40
  "WORKDIR": {
17
41
  "type": "string",
18
42
  "message": "Workdir",
19
- "default": "/var/www/html"
43
+ "default": "/var/www"
44
+ },
45
+ "NGINX_DOCUMENT_ROOT": {
46
+ "type": "string",
47
+ "message": "Nginx document root",
48
+ "default": "/var/www"
20
49
  }
21
50
  },
22
51
  "volumeOptions": [
23
- "./:/var/www/html"
52
+ "./:/var/www"
24
53
  ]
25
54
  }
@@ -0,0 +1,36 @@
1
+ server {
2
+ listen 80 default_server;
3
+ root ${NGINX_DOCUMENT_ROOT};
4
+
5
+ index index.php index.html index.htm;
6
+
7
+ server_name _;
8
+
9
+ if ($request_uri ~ "index\.(php|htm|html|asp|cfm|jsp)") {
10
+ rewrite ^(.*/).*$ $1 permanent;
11
+ }
12
+
13
+ location / {
14
+ try_files $uri $uri/ @rew;
15
+ }
16
+
17
+ location @rew {
18
+ rewrite ^(.*)$ /index.php last;
19
+ }
20
+
21
+ location ~ \.php$ {
22
+ include fastcgi.conf;
23
+ include fastcgi_params;
24
+ fastcgi_read_timeout 30s;
25
+ try_files $uri /index.php;
26
+ fastcgi_param SCRIPT_FILENAME $request_filename;
27
+ fastcgi_pass 127.0.0.1:9000;
28
+ }
29
+
30
+ # deny access to .htaccess files, if Apache's document root
31
+ # concurs with nginx's one
32
+ #
33
+ location ~ /\.(ht|env|git|ide)* {
34
+ return 404;
35
+ }
36
+ }