我有一个 Laravel 项目。这是我的docker-compose.yml文件。
nginx:
build: ./nginx/
ports:
- 90002:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
composer:
image: composer/composer
volumes_from:
- php
working_dir: /var/www/html
app:
image: php:7.0-fpm
volumes:
- ./test-api:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: user
MYSQL_USER: uesr
MYSQL_PASSWORD: test
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 90003:80
links:
- mysql
environment:
PMA_HOST: mysql …Run Code Online (Sandbox Code Playgroud) 我看到了几个关于 macOS、Docker 和bcryptNode.js 的问题。这似乎是最接近我的问题的答案,但它不起作用。
我的Dockerfile:
FROM node:6.4.0
COPY . /app
RUN ls -la /app
WORKDIR /app
RUN cd /app; npm install
CMD ["node", "index.js"]
Run Code Online (Sandbox Code Playgroud)
我的.dockerignore文件:
node_modules
Run Code Online (Sandbox Code Playgroud)
我的package.json依赖:
"dependencies": {
"bcrypt": "1.0.0",
}
Run Code Online (Sandbox Code Playgroud)
启动容器时,出现此错误:
/app/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
Run Code Online (Sandbox Code Playgroud)
从ls -la /app命令中Dockerfile我可以看到该node_modules文件夹绝对不是从主机(macOS)复制的:
drwxr-xr-x 6 root root 4096 Dec 7 21:29 .
drwxr-xr-x 47 root root 4096 Dec 7 21:29 ..
-rw-r--r-- 1 root root 763 Dec …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改我对 Symfony 3.4 应用程序的依赖项的目录。
我需要它,因为我正在使用 Docker 在 macOS 上工作,我宁愿不与主机共享它们,因为文件同步太慢了。
的相关文档,内容为:
composer.json 中的更改将如下所示:
Run Code Online (Sandbox Code Playgroud){ "config": { "bin-dir": "bin", "vendor-dir": "/some/dir/vendor" }, }
我做的
然后,更新 app/autoload.php 中 autoload.php 文件的路径:
Run Code Online (Sandbox Code Playgroud)// app/autoload.php // ... $loader = require '/some/dir/vendor/autoload.php';
autoload.php我的app目录中没有任何文件。
我在文档中遗漏了什么吗?
应用程序生成以下致命错误:
警告:要求(/some/dir/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php):无法打开流:/vendor/composer/autoload_real 中没有这样的文件或目录。第 66 行的 php
致命错误:require(): 无法打开所需的 '/some/dir/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php' (include_path='.:/usr/local/lib /php') 在第 66 行的 /vendor/composer/autoload_real.php 中
我最初使用以下方法创建了该应用程序:
$ composer create-project symfony/framework-standard-edition test "3.*"
Run Code Online (Sandbox Code Playgroud) 我正在设置一个新的dockerfile和docker-compose.yml。我首先在下面显示我的带有rails的文件结构,我想使用一个新的.dockerignore来忽略node_modules,.git。
我的Docker 版本是:Docker版本18.09.0,构建4d60db4
我使用的docker-compose.yml是v3
根目录
- Gemfile
- app
- bin
- cable
- db
- config
- lib
- node_modules
- public
- vendor
- docker
- app
- Dockerfile
- .git
- .gitignore
- .dockerignore
- docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
码头工人/应用程序/码头文件
FROM ruby:2.3.1
ARG RAILS_ROOT
RUN mkdir -p $RAILS_ROOT
WORKDIR $RAILS_ROOT
COPY . .
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: '3'
services:
app:
build: &build_core
context: .
dockerfile: ./docker/app/Dockerfile
args:
- APP_NAME=myappname
- RAILS_ROOT=/var/www/${APP_NAME}_web
- …Run Code Online (Sandbox Code Playgroud) 我的 docker-compose 配置文件有问题。我的目标是使用 docker-compose 文件运行 Next.js 应用程序并启用热重载。
从 Dockerfile 运行 Next.js 应用程序可以工作,但热重载不起作用。从 docker-compose 文件运行 Next.js 应用程序会触发错误:/bin/sh: next: not found并且我无法弄清楚出了什么问题......
Dockerfile:(取自 Next.js 的文档网站)[但请注意,这是一个多阶段构建,我仅引用builderdocker-compose 文件中的阶段。]
# Install dependencies only when needed
FROM node:18-alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install # --frozen-lockfile
# Rebuild the source code only when needed
FROM node:18-alpine AS builder
WORKDIR /app
COPY …Run Code Online (Sandbox Code Playgroud) 我有一个用 Vite 构建的 React 前端应用程序。当我运行 Docker 时,出现以下错误
\n[+] Running 1/1\n \xe2\xa0\xbf Container client-client-1 Recreated 0.2s\nAttaching to client-client-1\nclient-client-1 |\nclient-client-1 | > client@0.0.0 dev\nclient-client-1 | > vite\nclient-client-1 |\nclient-client-1 | sh: 1: vite: not found\nclient-client-1 exited with code 127\nRun Code Online (Sandbox Code Playgroud)\n下面你可以看到我的 Dockerfile:
\nFROM node\n\nWORKDIR /usr/src/app\n\nCOPY ./package.json .\n\nRUN npm i\n\nCOPY . .\n\n\nCMD ["npm", "run", "dev"]\nRun Code Online (Sandbox Code Playgroud)\n我尝试在构建 docker 容器期间添加一个命令来安装 vite,但它不起作用。\n您检查下面的 docker-compose 文件
\n[+] Running 1/1\n \xe2\xa0\xbf Container client-client-1 Recreated 0.2s\nAttaching to client-client-1\nclient-client-1 |\nclient-client-1 | > client@0.0.0 dev\nclient-client-1 | > vite\nclient-client-1 |\nclient-client-1 …Run Code Online (Sandbox Code Playgroud) 在搜索 docker-compose 文件时,我遇到了这个。我看到该卷有两条指令,我很确定第二条指令是映射,但我不知道第一条指令是什么。
volumes:
- /app/node_modules
- ./server:/app
Run Code Online (Sandbox Code Playgroud)
我
docker ×5
dockerfile ×3
php ×2
bcrypt ×1
composer-php ×1
macos-sierra ×1
next.js ×1
node.js ×1
npm ×1
reactjs ×1
symfony ×1
vite ×1