Changed current directory to /root/.composer
[RuntimeException]
No composer.json present in the current directory (./composer.json), this may be the cause of the following exception.
[InvalidArgumentException]
Package hirak/prestissimo at version ^0.3.7 has a PHP requirement incompatible with your PHP version, PHP extensions and Composer version
require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-scripts] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>]...
ERROR: Service 'php' failed to build: The command '/bin/sh -c composer global require --optimize-autoloader "hirak/prestissimo:${VERSION_PRESTISSIMO_PLUGIN}" && composer global dumpautoload --optimize && composer clear-cache' returned a non-zero code: 1
version: '3'
services:
web:
image: nginx
volumes:
- ./.docker/conf/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./www:/var/www/html
ports:
- 80:80
depends_on:
- php
- db
php:
build: .docker
volumes:
- ./.docker/conf/php/php.ini:/usr/local/etc/php/conf.d/php.ini
- ./.docker/conf/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- ./www:/var/www/html
composer:
image: composer
volumes:
- .:/app
command: install
db:
image: postgres:10.1
restart: on-failure
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
ports:
- 5432:5432
volumes:
- ./.docker/conf/postgres/:/docker-entrypoint-initdb.d/
//import axios from 'axios'
export const state = () => ({
lang: '',
error: {},
message: {},
entry:{
nav: {
brandLabel: {},
brandUrl: '',
menu: [],
},
userRole: '',
appParams:{
organization:{},
country:{},
}
}
})
export const mutations = {
setLang(state, lang) {
state.lang=lang;
},
clearError(state){
//state.error=Object.assign({});
//if ("message" in state.error)
state.error={};
},
clearMessage(state){
state.message={};
},
setBrandLabel(state, val){
state.entry.nav.brandLabel = val
},
setBrandUrl(state, val){
state.entry.nav.brandUrl = val
},
setMenu(state, val){
state.entry.nav.menu = val
},
setUserRole(state, val){
state.entry.userRole = val
},
setOrganization(state, val){
state.entry.appParams.organization = val
},
setCountry(state, val) {
state.entry.appParams.country = val
},
}
export const actions = {
async getMenu({state, commit, $axios }){
await this.$axios.get('menu')
.then(response=>{
//console.log(response.data)
let d = response.data;
commit('setBrandLabel', d.brandLabel)
commit('setBrandUrl', d.brandUrl)
commit('setMenu', d.menu)
commit('setLang', d.lang)
commit('setUserRole', d.userRole)
commit('setOrganization', d.appParams.organization)
commit('setCountry', d.appParams.country)
//console.log(state.entry)
return Promise.resolve(d.lang);
})
.catch(e => {
state.error = e.response;
});
}
}
export const getters = {
lang: state => state.lang,
userRole: state => state.entry.userRole,
error(state){
if ((state.error instanceof Object) && ('message' in state.error)){
return ('name' in state.error) ? `${state.error.name}. ${state.error.message}`.split(';') : state.error.message.split(';');
}
else if (JSON.stringify(state.error)=='{}' || state.error=='')
return false;
return [state.error];
},
message(state){
if(JSON.stringify(state.message)=='{}' || state.message=='') {
return false;
} else return state.message;
},
}<template>
<div id="app">
<Navbar :nav="entry.nav" :lang="lang" />
<main>
{{test}}
<div class='container'>
<Nuxt />
</div>
</main>
</div>
</template>
<script>
import Navbar from '@/components/Navbar'
import {mapState, mapActions} from 'vuex'
import axios from 'axios'
export default {
components: {
Navbar
},
data(){
return {
test: '',
}
},
watch: {
'$route' (to, from) {
if (to.path.search(/^\/language/)>-1) {
this.changeLanguage(to,from);
}
this.$store.commit('clearError');
},
},
computed: {
...mapState(['lang', 'entry']),
},
methods: {
...mapActions(['getMenu']),
changeLanguage(to, from){
this.$router.replace(from.path);
if (this.lang!=to.params.lang)
{
this.setLang(to.params.lang);
this.sendLang(to.path);
}
},
sendLang(path){
axios.put(path)
.catch(e=>{
this.$store.dispatch('setError', e);
});
},
setLang(lang){
this.$store.commit('setLang', lang);
},
},
//*************************************** после добавления этого кода начинает рендериться как надо
async fetch() {
const t = await fetch('http://localhost:8000/menu').then(res =>
res.json())
},
asyncData() {
return {
name: 'Alex',
food: 'apple'
}
},
//*********************************конец странного и непонятного кода
created(){
this.getMenu()
},
}
</script><template>
<div class="home">
<h1>front page</h1>
<img alt="Vue logo" class='front-logo' src="../assets/logo-front.png">
<FrontGuest v-if="userRole == 'roleGuest'" :msg = "voc.h1[lang]"/>
<FrontUser v-if="userRole == 'roleUser' || userRole == 'roleAdmin'" :msg = "voc.h1[lang]"/>
<div class="generate"></div>
</div>
</template>
<script>
import FrontGuest from '@/components/FrontPage/FrontGuest.vue'
import FrontUser from '@/components/FrontPage/FrontUser.vue'
import translations from '@/components/FrontPage/translations';
export default {
components: {
FrontGuest, FrontUser
},
data(){
return {
name: 'Home',
voc: translations,
}
},
head: {
title: 'Home page',
data() {
return {
voc: translations,
}
},
computed: {
lang(){
return this.$store.getters.lang;
},
userRole() {
return this.$store.getters.userRole;
},
},
}
</script>
'/api': 'http://localhost:8000/api'
mode: 'universal',