Use the extract specific vertices tool to extract the endpoints of each line as a separate point layer, as explained here.
Use the NNJoin plugin to perform a nearest-neighbor join between the new endpoints layer and your other point layer. Or use the geomnearest function from the refFunctions plugin in the Field Calculator.
Use the Field Calculator to ...
You can create a virtual layer with the desired join condition
go to the menu Layer > Add Layer > Add/Edit Virtual Layer... and enter the query
SELECT b.*, p.field1, p.field2
FROM buildings b
JOIN parcels p ON ST_CONTAINS(p.geometry, ST_CENTROID(b.geometry))
Note that it is safer to list the fields of interest from the 2nd layer (parcels) instead of ...
I have tried to set up the example above. I hope I correctly noticed that your point layer consists of points located very close to each other. Looks like the output after using the 'Create points along lines' tool.
Tested on QGIS 2.18 and QGIS 3.4
I can suggest using a "Virtual Layer" through Layer > Add Layer > Add/Edit Virtual Layer....
Another solution based on existing processing algorithms. You can achieve this by doing 2 spatial joins.
Extract centeroids via Vector Geometry > Centroids
Join the centroids layer with parcels layers, call this centroid_join
Join the building footprints layer with centroid join.
It is advisable to explicitly specify the fields in each join, so you don't ...