I'm following instructions from MediaWiki-Docker/Extension/ContentTranslation. At docker-compose up -d step I'm getting this error.
~/Documents/mediawiki$ docker-compose up -d [+] Building 0.2s (4/5) => [mediawiki_cxserver internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 31B 0.0s => [mediawiki_eventlogging internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 2B 0.0s => [mediawiki_cxserver internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => CANCELED [mediawiki_cxserver internal] load metadata for docker.io/library/node:10-buster 0.0s failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount133945045/Dockerfile: no such file or directory
Full terminal output.
1 | ~/Documents$ git clone --depth=1 https://gerrit.wikimedia.org/r/mediawiki/core.git mediawiki |
---|---|
2 | Cloning into 'mediawiki'... |
3 | remote: Counting objects: 8900, done |
4 | remote: Finding sources: 100% (8900/8900) |
5 | remote: Getting sizes: 100% (7331/7331) |
6 | remote: Compressing objects: 99% (82436/82437) |
7 | remote: Total 8900 (delta 2315), reused 4780 (delta 1568) |
8 | Receiving objects: 100% (8900/8900), 31.66 MiB | 2.18 MiB/s, done. |
9 | Resolving deltas: 100% (2315/2315), done. |
10 | Updating files: 100% (8264/8264), done. |
11 | |
12 | |
13 | |
14 | ~/Documents$ git clone "https://gerrit.wikimedia.org/r/mediawiki/services/cxserver" cxserver |
15 | Cloning into 'cxserver'... |
16 | remote: Total 5976 (delta 0), reused 5976 (delta 0) |
17 | Receiving objects: 100% (5976/5976), 81.69 MiB | 1014.00 KiB/s, done. |
18 | Resolving deltas: 100% (4396/4396), done. |
19 | |
20 | |
21 | |
22 | ~/Documents$ cd mediawiki |
23 | |
24 | |
25 | |
26 | ~/Documents/mediawiki$ git clone "https://gerrit.wikimedia.org/r/mediawiki/skins/Vector" skins/Vector |
27 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite" extensions/Cite |
28 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/ContentTranslation" extensions/ContentTranslation |
29 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector" extensions/UniversalLanguageSelector |
30 | git clone --recursive "https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor" extensions/VisualEditor |
31 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/BetaFeatures" extensions/BetaFeatures |
32 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalPreferences" extensions/GlobalPreferences |
33 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend" extensions/MobileFrontend |
34 | git clone "https://gerrit.wikimedia.org/r/mediawiki/extensions/EventLogging" extensions/EventLogging |
35 | Cloning into 'skins/Vector'... |
36 | remote: Counting objects: 120, done |
37 | remote: Finding sources: 100% (115/115) |
38 | remote: Getting sizes: 100% (78/78) |
39 | remote: Compressing objects: 100% (1279008/1279008) |
40 | remote: Total 12965 (delta 33), reused 12905 (delta 20) |
41 | Receiving objects: 100% (12965/12965), 3.68 MiB | 1.49 MiB/s, done. |
42 | Resolving deltas: 100% (9739/9739), done. |
43 | Cloning into 'extensions/Cite'... |
44 | remote: Counting objects: 34, done |
45 | remote: Finding sources: 100% (29/29) |
46 | remote: Getting sizes: 100% (17/17) |
47 | remote: Compressing objects: 100% (305218/305218) |
48 | remote: Total 19311 (delta 8), reused 19298 (delta 7) |
49 | Receiving objects: 100% (19311/19311), 3.62 MiB | 806.00 KiB/s, done. |
50 | Resolving deltas: 100% (14936/14936), done. |
51 | Cloning into 'extensions/ContentTranslation'... |
52 | remote: Counting objects: 344, done |
53 | remote: Finding sources: 100% (344/344) |
54 | remote: Getting sizes: 100% (283/283) |
55 | remote: Compressing objects: 100% (2933086/2933086) |
56 | remote: Total 50109 (delta 52), reused 49892 (delta 41) |
57 | Receiving objects: 100% (50109/50109), 13.62 MiB | 1.94 MiB/s, done. |
58 | Resolving deltas: 100% (40538/40538), done. |
59 | Cloning into 'extensions/UniversalLanguageSelector'... |
60 | remote: Counting objects: 107, done |
61 | remote: Finding sources: 100% (50/50) |
62 | remote: Getting sizes: 100% (30/30) |
63 | remote: Compressing objects: 100% (692290/692290) |
64 | remote: Total 25314 (delta 17), reused 25289 (delta 9) |
65 | Receiving objects: 100% (25314/25314), 74.78 MiB | 2.37 MiB/s, done. |
66 | Resolving deltas: 100% (18895/18895), done. |
67 | Cloning into 'extensions/VisualEditor'... |
68 | remote: Counting objects: 184, done |
69 | remote: Finding sources: 100% (111/111) |
70 | remote: Getting sizes: 100% (71/71) |
71 | remote: Compressing objects: 100% (1198791/1198791) |
72 | remote: Total 143636 (delta 35), reused 143580 (delta 23) |
73 | Receiving objects: 100% (143636/143636), 26.65 MiB | 2.19 MiB/s, done. |
74 | Resolving deltas: 100% (114840/114840), done. |
75 | Submodule 'lib/ve' (https://gerrit.wikimedia.org/r/VisualEditor/VisualEditor.git) registered for path 'lib/ve' |
76 | Cloning into '/Users/z/Documents/mediawiki/extensions/VisualEditor/lib/ve'... |
77 | remote: Counting objects: 51, done |
78 | remote: Finding sources: 100% (15/15) |
79 | remote: Getting sizes: 100% (9/9) |
80 | remote: Compressing objects: 100% (279932/279932) |
81 | remote: Total 141584 (delta 4), reused 141576 (delta 3) |
82 | Receiving objects: 100% (141584/141584), 29.57 MiB | 1.59 MiB/s, done. |
83 | Resolving deltas: 100% (121535/121535), done. |
84 | Submodule path 'lib/ve': checked out '2226310506cef39b369f49162e1cf2e5794ca484' |
85 | Cloning into 'extensions/BetaFeatures'... |
86 | remote: Counting objects: 15, done |
87 | remote: Finding sources: 100% (15/15) |
88 | remote: Getting sizes: 100% (11/11) |
89 | remote: Compressing objects: 100% (198542/198542) |
90 | remote: Total 6610 (delta 2), reused 6600 (delta 1) |
91 | Receiving objects: 100% (6610/6610), 1.20 MiB | 1.17 MiB/s, done. |
92 | Resolving deltas: 100% (4859/4859), done. |
93 | Cloning into 'extensions/GlobalPreferences'... |
94 | remote: Counting objects: 11, done |
95 | remote: Finding sources: 100% (11/11) |
96 | remote: Getting sizes: 100% (9/9) |
97 | remote: Compressing objects: 100% (180117/180117) |
98 | remote: Total 3378 (delta 1), reused 3369 (delta 0) |
99 | Receiving objects: 100% (3378/3378), 816.98 KiB | 1.09 MiB/s, done. |
100 | Resolving deltas: 100% (2460/2460), done. |
101 | Cloning into 'extensions/MobileFrontend'... |
102 | remote: Counting objects: 281, done |
103 | remote: Finding sources: 100% (61/61) |
104 | remote: Getting sizes: 100% (41/41) |
105 | remote: Compressing objects: 100% (42091/42091) |
106 | remote: Total 120436 (delta 14), reused 120429 (delta 14) |
107 | Receiving objects: 100% (120436/120436), 31.29 MiB | 2.44 MiB/s, done. |
108 | Resolving deltas: 100% (97353/97353), done. |
109 | Cloning into 'extensions/EventLogging'... |
110 | remote: Counting objects: 9, done |
111 | remote: Finding sources: 100% (9/9) |
112 | remote: Getting sizes: 100% (7/7) |
113 | remote: Compressing objects: 100% (152283/152283) |
114 | remote: Total 6564 (delta 1), reused 6558 (delta 0) |
115 | Receiving objects: 100% (6564/6564), 1.42 MiB | 1.13 MiB/s, done. |
116 | Resolving deltas: 100% (4815/4815), done. |
117 | |
118 | |
119 | |
120 | ~/Documents/mediawiki$ echo "MW_DOCKER_UID=$(id -u)" >> .env |
121 | echo "MW_DOCKER_GID=$(id -g)" >> .env |
122 | |
123 | |
124 | |
125 | ~/Documents/mediawiki$ docker-compose up -d |
126 | [+] Building 0.3s (4/5) |
127 | => [mediawiki_cxserver internal] load build definition from Dockerfile 0.0s |
128 | => => transferring dockerfile: 105B 0.0s |
129 | => [mediawiki_eventlogging internal] load build definition from Dockerfile 0.0s |
130 | => => transferring dockerfile: 2B 0.0s |
131 | => [mediawiki_cxserver internal] load .dockerignore 0.0s |
132 | => => transferring context: 2B 0.0s |
133 | => CANCELED [mediawiki_cxserver internal] load metadata for docker.io/library/node:10-buster 0.0s |
134 | failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount687336434/Dockerfile: no such file or directory |
Environment.
1 | ~$ sw_vers |
---|---|
2 | ProductName: Mac OS X |
3 | ProductVersion: 10.15.7 |
4 | BuildVersion: 19H1323 |
5 | |
6 | |
7 | |
8 | ~$ docker --version |
9 | Docker version 20.10.8, build 3967b7d |
10 | |
11 | |
12 | |
13 | ~$ docker-compose --version |
14 | Docker Compose version v2.0.0-rc.2 |
15 | |
16 | |
17 | |
18 | ~/Documents/cxserver$ cat config.yaml |
19 | # Number of worker processes to spawn. |
20 | # Set to 0 to run everything in a single process without clustering. |
21 | # Use ncpu to run as many workers as there are CPU units |
22 | num_workers: 0 |
23 | |
24 | # Log error messages and gracefully restart a worker if v8 reports that it |
25 | # uses more heap (note: not RSS) than this many megabytes. |
26 | worker_heap_limit_mb: 250 |
27 | |
28 | # Logger info |
29 | logging: |
30 | level: trace |
31 | streams: |
32 | - type: stdout # log to stdout |
33 | named_levels: true # emit log level name instead of index. e.g. INFO vs 30 |
34 | # # Use gelf-stream -> logstash |
35 | # - type: gelf |
36 | # host: logstash1003.eqiad.wmnet |
37 | # port: 12201 |
38 | |
39 | # Statsd metrics reporter |
40 | metrics: |
41 | #type: log |
42 | #host: localhost |
43 | #port: 8125 |
44 | |
45 | ratelimiter: |
46 | type: memory |
47 | |
48 | services: |
49 | - name: cxserver |
50 | # a relative path or the name of an npm package, if different from name |
51 | module: ./app.js |
52 | # optionally, a version constraint of the npm package |
53 | # version: ^0.4.0 |
54 | # per-service config |
55 | conf: |
56 | port: 8080 |
57 | # private_key: path to private key file for enabling https |
58 | # certificate: path to certificate file for enabling https |
59 | # interface: localhost # uncomment to only listen on localhost |
60 | # More per-service config settings |
61 | # The location of the spec, defaults to spec.yaml if not specified |
62 | # spec: ./spec.yaml |
63 | # allow cross-domain requests to the API (default *) |
64 | cors: '*' |
65 | # to disable use: |
66 | # cors: false |
67 | # to restrict to a particular domain, use: |
68 | # cors: restricted.domain.org |
69 | # URL of the outbound proxy to use (complete with protocol) |
70 | # proxy: http://my.proxy.org:8080 |
71 | # the list of domains for which not to use the proxy defined above |
72 | # no_proxy_list: |
73 | # - domain1.com |
74 | # - domain2.org |
75 | user_agent: cxserver |
76 | # Mediawiki host name. Example {lang}.wikisource.org which get expanded internally to |
77 | # es.wikisource.org in a spanish language context. |
78 | # Do not prefix with http or https:// |
79 | # mw_host: '{lang}.wikipedia.org' |
80 | mwapi_req: |
81 | body: "{{request.body}}" |
82 | query: "{{ default(request.query, {}) }}" |
83 | headers: |
84 | host: "{{request.params.domain}}" |
85 | user-agent: "{{user-agent}}" |
86 | method: post |
87 | uri: "https://{{domain}}/w/api.php" |
88 | restbase_req: |
89 | method: '{{request.method}}' |
90 | uri: https://{{domain}}/api/rest_v1/{+path} |
91 | query: '{{ default(request.query, {}) }}' |
92 | headers: '{{request.headers}}' |
93 | body: '{{request.body}}' |
94 | jwt: |
95 | secret: '' |
96 | algorithms: |
97 | - HS256 |
98 | ratelimiter_key: x-client-ip # The request header field that uniquely identify a request source |
99 | ratelimiter_rate: 10 |
100 | languages: config/languages.yaml |
101 | templatemapping: |
102 | database: config/templatemapping.db |
103 | sectionmapping: |
104 | database: config/cx-section-titles-aligned.db |
105 | mt: |
106 | Apertium: |
107 | api: https://apertium.wmflabs.org |
108 | # For packaging reasons use separate configuration |
109 | languages: config/Apertium.yaml |
110 | Elia: |
111 | api: https://mt-api.elhuyar.eus/translate_string |
112 | languages: config/Elia.yaml |
113 | key: null |
114 | apiId: null |
115 | Google: |
116 | api: https://www.googleapis.com/language/translate/v2 |
117 | key: null |
118 | languages: config/Google.yaml |
119 | Yandex: |
120 | api: https://translate.yandex.net |
121 | key: null |
122 | languages: config/Yandex.yaml |
123 | Youdao: |
124 | api: https://openapi.youdao.com/api |
125 | appKey: null |
126 | appSecret: null |
127 | languages: config/Youdao.yaml |
128 | LingoCloud: |
129 | api: https://api.interpreter.caiyunai.com/v1 |
130 | account: wikimedia |
131 | key: null |
132 | languages: config/LingoCloud.yaml |
133 | OpusMT: |
134 | api: https://opusmt.wmflabs.org/api/translate |
135 | languages: config/OpusMT.yaml |
136 | TestClient: |
137 | languages: config/TestClient.yaml |
138 | dictionary: |
139 | Dictd: |
140 | languages: config/Dictd.yaml |
141 | JsonDict: |
142 | languages: config/JsonDict.yaml |
143 | |
144 | |
145 | |
146 | ~/Documents/mediawiki$ cat .env |
147 | MW_DOCKER_PORT=8080 |
148 | MW_SCRIPT_PATH=/w |
149 | MW_SERVER=http://localhost:8080 |
150 | MEDIAWIKI_USER=Admin |
151 | MEDIAWIKI_PASSWORD=dockerpass |
152 | XDEBUG_CONFIG='' |
153 | CXSERVER_PORT=8090 |
154 | MW_DOCKER_UID=501 |
155 | MW_DOCKER_GID=20 |
156 | |
157 | |
158 | |
159 | ~/Documents/mediawiki$ cat docker-compose.override.yml |
160 | version: '3.7' |
161 | services: |
162 | mediawiki: |
163 | # On Linux, these lines ensure file ownership is set to your host user/group |
164 | user: "${MW_DOCKER_UID}:${MW_DOCKER_GID}" |
165 | mediawiki-web: |
166 | user: "${MW_DOCKER_UID}:${MW_DOCKER_GID}" |
167 | mariadb-main: |
168 | image: 'bitnami/mariadb:latest' |
169 | volumes: |
170 | - mariadbdata:/bitnami/mariadb |
171 | environment: |
172 | - MARIADB_REPLICATION_MODE=master |
173 | - MARIADB_REPLICATION_USER=repl_user |
174 | - MARIADB_REPLICATION_PASSWORD=repl_password |
175 | - MARIADB_ROOT_PASSWORD=main_root_password |
176 | - MARIADB_USER=my_user |
177 | - MARIADB_PASSWORD=my_password |
178 | - MARIADB_DATABASE=my_database |
179 | mariadb-replica: |
180 | image: 'bitnami/mariadb:latest' |
181 | depends_on: |
182 | - mariadb-main |
183 | environment: |
184 | - MARIADB_REPLICATION_MODE=slave |
185 | - MARIADB_REPLICATION_USER=repl_user |
186 | - MARIADB_REPLICATION_PASSWORD=repl_password |
187 | - MARIADB_MASTER_HOST=mariadb-main |
188 | - MARIADB_MASTER_PORT_NUMBER=3306 |
189 | - MARIADB_MASTER_ROOT_PASSWORD=main_root_password |
190 | |
191 | cxserver: |
192 | build: |
193 | context: ../cxserver |
194 | volumes: |
195 | # map local to remote folder, exclude node_modules |
196 | - ../cxserver:/opt/cxserver |
197 | - /opt/cxserver/node_modules |
198 | ports: |
199 | - "${CXSERVER_PORT:-8090}:8080" |
200 | command: npm start |
201 | |
202 | eventlogging: |
203 | build: |
204 | context: ./extensions/EventLogging |
205 | volumes: |
206 | # map local to remote folder, exclude node_modules |
207 | - ./extensions/EventLogging:/opt/eventlogging |
208 | - /opt/eventlogging/node_modules |
209 | ports: |
210 | - "${EVENTLOGGING_PORT:-8192}:8192" |
211 | command: npm run eventgate-devserver |
212 | |
213 | volumes: |
214 | mariadbdata: |
215 | driver: local |