小编Gab*_*bb0的帖子

Docker:开发和生产环境的最佳实践

我有一个简单的node.js应用程序.我可以使用一个简单的Dockerfile构建一个运行应用程序的容器,如下所示:

FROM ubuntu:16.04
RUN apt-get update && apt-get install -y nodejs nodejs-legacy npm
COPY . /app
WORKDIR /app
RUN npm install
CMD node index.js
Run Code Online (Sandbox Code Playgroud)

这会将源代码复制到容器中,我可以将它发送到注册表没问题.

但是对于开发,我不想为我的代码中的每个更改重建容器.很自然地,我将一个音量组合用于nodemon.这是我的问题:

  • 如何保持不同的配置?两个dockerfiles?使用compose与两个不同的撰写文件?
  • 我的主机上的node_nodules文件夹与我在容器中需要的文件夹不同(即一些软件包全局安装在主机上).我可以将其从卷中排除吗?如果是这样,我需要在安装卷后运行npm install.我该怎么做呢?

所以我的问题是:我如何将开发和部署环境分开.两个Dockerfiles?两个撰写文件?有没有最佳做法?

node.js docker dockerfile docker-compose

5
推荐指数
1
解决办法
1709
查看次数

将textarea保存到MySQL并保留换行符

想象一下博客或cms系统(PHP和MySQL).我想让用户在textarea中输入一些文本并将其保存到数据库中.数据库中字段的类型是TEXT.

我想保留换行符并在以后打印它们.我知道我可以用PHP的nl2br函数做到这一点,但是如何保护这个字符串免受SQL注入攻击(让我们假设我不能使用预处理语句).如果我使用mysql_real_escape_string它,它不再显示换行符.

$text = 'one line
another line';
$text = mysql_real_escape_string($text);
/* save to db, fetch it some time later */
echo nl2br($text); /* output: one line\r\nanotherline */
Run Code Online (Sandbox Code Playgroud)

html php mysql sql-injection

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

docker ×1

docker-compose ×1

dockerfile ×1

html ×1

mysql ×1

node.js ×1

php ×1

sql-injection ×1